diff --git a/[refs] b/[refs] index 9e97e014f93e..9453f7121b47 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 24114504c4d585ec4aae7a2b2acb81bf741f8c8a +refs/heads/master: 5dfcc87fd79dfb96ed155b524337dbd0da4f5993 diff --git a/trunk/fs/fuse/dev.c b/trunk/fs/fuse/dev.c index 168a80f7f12b..5cb8614508c3 100644 --- a/trunk/fs/fuse/dev.c +++ b/trunk/fs/fuse/dev.c @@ -258,10 +258,14 @@ void fuse_queue_forget(struct fuse_conn *fc, struct fuse_forget_link *forget, forget->forget_one.nlookup = nlookup; spin_lock(&fc->lock); - fc->forget_list_tail->next = forget; - fc->forget_list_tail = forget; - wake_up(&fc->waitq); - kill_fasync(&fc->fasync, SIGIO, POLL_IN); + if (fc->connected) { + fc->forget_list_tail->next = forget; + fc->forget_list_tail = forget; + wake_up(&fc->waitq); + kill_fasync(&fc->fasync, SIGIO, POLL_IN); + } else { + kfree(forget); + } spin_unlock(&fc->lock); }