mirror of https://gitee.com/openkylin/linux.git
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;
|
||||
req = list_entry(head->next, struct fuse_req, list);
|
||||
req->out.h.error = -ECONNABORTED;
|
||||
clear_bit(FR_PENDING, &req->flags);
|
||||
clear_bit(FR_SENT, &req->flags);
|
||||
list_del_init(&req->list);
|
||||
request_end(fc, req);
|
||||
|
@ -2103,6 +2102,8 @@ void fuse_abort_conn(struct fuse_conn *fc)
|
|||
spin_lock(&fiq->waitq.lock);
|
||||
fiq->connected = 0;
|
||||
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))
|
||||
kfree(dequeue_forget(fiq, 1, NULL));
|
||||
wake_up_all_locked(&fiq->waitq);
|
||||
|
|
|
@ -68,7 +68,7 @@ static u64 time_to_jiffies(u64 sec, u32 nsec)
|
|||
if (sec || nsec) {
|
||||
struct timespec64 ts = {
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue