Unverified Commit b49194da authored by David Howells's avatar David Howells Committed by Christian Brauner
Browse files

afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY



AFS servers pass back a code indicating EEXIST when they're asked to remove
a directory that is not empty rather than ENOTEMPTY because not all the
systems that an AFS server can run on have the latter error available and
AFS preexisted the addition of that error in general.

Fix afs_rmdir() to translate EEXIST to ENOTEMPTY.

Fixes: 260a9803 ("[AFS]: Add "directory write" support.")
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20241216204124.3752367-13-dhowells@redhat.com


cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 6e0b503d
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1472,7 +1472,12 @@ static int afs_rmdir(struct inode *dir, struct dentry *dentry)
		op->file[1].vnode = vnode;
	}

	return afs_do_sync_operation(op);
	ret = afs_do_sync_operation(op);

	/* Not all systems that can host afs servers have ENOTEMPTY. */
	if (ret == -EEXIST)
		ret = -ENOTEMPTY;
	return ret;

error:
	return afs_put_operation(op);