]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
reef: client/fuse: handle case of renameat2 with non-zero flags 55002/head
authorShachar Sharon <ssharon@redhat.com>
Thu, 30 Nov 2023 11:29:30 +0000 (13:29 +0200)
committerLeonid Usov <leonid.usov@ibm.com>
Mon, 25 Dec 2023 11:46:20 +0000 (13:46 +0200)
commitf5d2300324dbdea55aca6b805b4584ff135036d0
tree6407ecefa5cb631487281f23de8bb75204c64ead
parentcfc97e1654e1e17490cb68d8eed8b44040de730d
reef: client/fuse: handle case of renameat2 with non-zero flags

When user issues renameat(2) with non-zero flags (RENAME_EXCHANGE or
RENAME_NOREPALCE) the current code ignores those flags and treat the
call as ordinary rename. This, in turn, may yield successful rename with
wrong semantics then those expected by the caller.

Follow the same semantics as kernel's cephfs client: return -EINVAL when
having non-zero flags to renameat2 (see 'ceph_rename' at fs/ceph/dir.c).

Fixes: https://tracker.ceph.com/issues/63822
Original-Issue: https://tracker.ceph.com/issues/63722
Original-PR: https://github.com/ceph/ceph/pull/54733
Signed-off-by: Leonid Usov <leonid.usov@ibm.com>
Signed-off-by: Shachar Sharon <ssharon@redhat.com>
(cherry picked from commit 19509ce650367de8dfb979d3c6a40d5752c822f2)
src/client/fuse_ll.cc