ceph: fix error handling in ceph_atomic_open and ceph_lookup
authorJeff Layton <jlayton@kernel.org>
Wed, 2 Jun 2021 16:46:07 +0000 (12:46 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 22 Jun 2021 11:53:28 +0000 (13:53 +0200)
commit7a971e2c0767b6fc9a77c4108eceff0509c61cdb
treedf30eb87a1fcd07e2ddae903ce7617cee17766d1
parent27171ae6a0fdc75571e5bf3d0961631a1e4fb765
ceph: fix error handling in ceph_atomic_open and ceph_lookup

Commit aa60cfc3f7ee broke the error handling in these functions such
that they don't handle non-ENOENT errors from ceph_mdsc_do_request
properly.

Move the checking of -ENOENT out of ceph_handle_snapdir and into the
callers, and if we get a different error, return it immediately.

Fixes: aa60cfc3f7ee ("ceph: don't use d_add in ceph_handle_snapdir")
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/dir.c
fs/ceph/file.c
fs/ceph/super.h