• Steve French's avatar
    [CIFS] fix busy-file renames and refactor cifs_rename logic · ee2fd967
    Steve French authored
    Break out the code that does the actual renaming into a separate
    function and have cifs_rename call that. That function will attempt a
    path based rename first and then do a filehandle based one if it looks
    like the source is busy.
    
    The existing logic tried a path based rename first, but if we needed to
    remove the destination then it only attempted a filehandle based rename
    afterward. Not all servers support renaming by filehandle, so we need to
    always attempt path rename first and fall back to filehandle rename if
    it doesn't work.
    
    This also fixes renames of open files on windows servers (at least when
    the source and destination directories are the same).
    
    CC: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    ee2fd967
inode.c 52 KB