Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2011 15:43:54 +0000 (07:43 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2011 15:43:54 +0000 (07:43 -0800)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
  fuse: fix ioctl ABI
  fuse: allow batching of FORGET requests
  fuse: separate queue for FORGET requests
  fuse: ioctl cleanup

Fix up trivial conflict in fs/fuse/inode.c due to RCU lookup having done
the RCU-freeing of the inode in fuse_destroy_inode().

1  2 
fs/fuse/dir.c
fs/fuse/inode.c

diff --cc fs/fuse/dir.c
Simple merge
diff --cc fs/fuse/inode.c
index a8b31da19b93f52ad4ae5e4bd36244f961853f87,7ba4d351da6541ce93d873aa797d18335eac5d47..f62b32cffea9ee50a4cd9944e474aa56eecf85e0
@@@ -111,24 -109,10 +116,10 @@@ static void fuse_destroy_inode(struct i
        struct fuse_inode *fi = get_fuse_inode(inode);
        BUG_ON(!list_empty(&fi->write_files));
        BUG_ON(!list_empty(&fi->queued_writes));
-       if (fi->forget_req)
-               fuse_request_free(fi->forget_req);
+       kfree(fi->forget);
 -      kmem_cache_free(fuse_inode_cachep, inode);
 +      call_rcu(&inode->i_rcu, fuse_i_callback);
  }
  
- void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req,
-                     u64 nodeid, u64 nlookup)
- {
-       struct fuse_forget_in *inarg = &req->misc.forget_in;
-       inarg->nlookup = nlookup;
-       req->in.h.opcode = FUSE_FORGET;
-       req->in.h.nodeid = nodeid;
-       req->in.numargs = 1;
-       req->in.args[0].size = sizeof(struct fuse_forget_in);
-       req->in.args[0].value = inarg;
-       fuse_request_send_noreply(fc, req);
- }
  static void fuse_evict_inode(struct inode *inode)
  {
        truncate_inode_pages(&inode->i_data, 0);