• M
    [PATCH] fuse: simplify locking · 0720b315
    Miklos Szeredi 提交于
    This is in preparation for removing the global spinlock in favor of a
    per-mount one.
    
    The only critical part is the interaction between fuse_dev_release() and
    fuse_fill_super(): fuse_dev_release() must see the assignment to
    file->private_data, otherwise it will leak the reference to fuse_conn.
    
    This is ensured by the fput() operation, which will synchronize the assignment
    with other CPU's that may do a final fput() soon after this.
    
    Also redundant locking is removed from fuse_fill_super(), where exclusion is
    already ensured by the BKL held for this function by the VFS.
    Signed-off-by: NMiklos Szeredi <miklos@szeredi.hu>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    0720b315
dev.c 24.5 KB