• David Howells's avatar
    afs: Fix rename operation status delivery · b98f0ec9
    David Howells authored
    The afs_deliver_fs_rename() and yfs_deliver_fs_rename() functions both only
    decode the second file status returned unless the parent directories are
    different - unfortunately, this means that the xdr pointer isn't advanced
    and the volsync record will be read incorrectly in such an instance.
    
    Fix this by always decoding the second status into the second
    status/callback block which wasn't being used if the dirs were the same.
    
    The afs_update_dentry_version() calls that update the directory data
    version numbers on the dentries can then unconditionally use the second
    status record as this will always reflect the state of the destination dir
    (the two records will be identical if the destination dir is the same as
    the source dir)
    
    Fixes: 260a9803 ("[AFS]: Add "directory write" support.")
    Fixes: 30062bd1 ("afs: Implement YFS support in the fs client")
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    b98f0ec9
fsclient.c 56 KB