mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
Pull fuse fixes from Miklos Szeredi: "Fix two regressions, one introduced in 4.9 and a less recent one in 4.2" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: fix time_to_jiffies nsec sanity check fuse: clear FR_PENDING flag when moving requests out of pending queue
This commit is contained in:
commit
eefa9feb7d
|
|
@ -2025,7 +2025,6 @@ static void end_requests(struct fuse_conn *fc, struct list_head *head)
|
||||||
struct fuse_req *req;
|
struct fuse_req *req;
|
||||||
req = list_entry(head->next, struct fuse_req, list);
|
req = list_entry(head->next, struct fuse_req, list);
|
||||||
req->out.h.error = -ECONNABORTED;
|
req->out.h.error = -ECONNABORTED;
|
||||||
clear_bit(FR_PENDING, &req->flags);
|
|
||||||
clear_bit(FR_SENT, &req->flags);
|
clear_bit(FR_SENT, &req->flags);
|
||||||
list_del_init(&req->list);
|
list_del_init(&req->list);
|
||||||
request_end(fc, req);
|
request_end(fc, req);
|
||||||
|
|
@ -2103,6 +2102,8 @@ void fuse_abort_conn(struct fuse_conn *fc)
|
||||||
spin_lock(&fiq->waitq.lock);
|
spin_lock(&fiq->waitq.lock);
|
||||||
fiq->connected = 0;
|
fiq->connected = 0;
|
||||||
list_splice_init(&fiq->pending, &to_end2);
|
list_splice_init(&fiq->pending, &to_end2);
|
||||||
|
list_for_each_entry(req, &to_end2, list)
|
||||||
|
clear_bit(FR_PENDING, &req->flags);
|
||||||
while (forget_pending(fiq))
|
while (forget_pending(fiq))
|
||||||
kfree(dequeue_forget(fiq, 1, NULL));
|
kfree(dequeue_forget(fiq, 1, NULL));
|
||||||
wake_up_all_locked(&fiq->waitq);
|
wake_up_all_locked(&fiq->waitq);
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ static u64 time_to_jiffies(u64 sec, u32 nsec)
|
||||||
if (sec || nsec) {
|
if (sec || nsec) {
|
||||||
struct timespec64 ts = {
|
struct timespec64 ts = {
|
||||||
sec,
|
sec,
|
||||||
max_t(u32, nsec, NSEC_PER_SEC - 1)
|
min_t(u32, nsec, NSEC_PER_SEC - 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
return get_jiffies_64() + timespec64_to_jiffies(&ts);
|
return get_jiffies_64() + timespec64_to_jiffies(&ts);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user