• Jeff Layton's avatar
    cifs: pass instantiated filp back after open call · 6ca9f3ba
    Jeff Layton authored
    The current scheme of sticking open files on a list and assuming that
    cifs_open will scoop them off of it is broken and leads to "Busy
    inodes after umount..." errors at unmount time.
    
    The problem is that there is no guarantee that cifs_open will always
    be called after a ->lookup or ->create operation. If there are
    permissions or other problems, then it's quite likely that it *won't*
    be called.
    
    Fix this by fully instantiating the filp whenever the file is created
    and pass that filp back to the VFS. If there is a problem, the VFS
    can clean up the references.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Reviewed-and-Tested-by: default avatarSuresh Jayaraman <sjayaraman@suse.de>
    6ca9f3ba
file.c 63.7 KB