Bug #54046
Updated by Jeff Layton about 2 years ago
I did an xfstests run in a subvolume with namespace restricted caps. Test generic/070 does an fsstress run, and then tries to delete the tree that it creates. Some of those deletes failed with permission denied errors: <pre> +rm: cannot remove '/mnt/test/fsstress/p0/d64/d29e/d787/da0a/db79/db99/leae': Permission denied +rm: cannot remove '/mnt/test/fsstress/p0/d64/d29e/d787/da0a/db79/db99/c297': Permission denied +rm: cannot remove '/mnt/test/fsstress/p0/d64/d802/f976': Permission denied +rm: cannot remove '/mnt/test/fsstress/p0/d64/f7d8': Permission denied +rm: cannot remove '/mnt/test/fsstress/p0/d64/f3b5': Permission denied </pre> ...and I get the same error when I try to stat the dentries: <pre> statx(AT_FDCWD, "c297", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, STATX_ALL, 0x7ffce516e6f0) = -1 EACCES (Permission denied) </pre> Turning up debugging on the client shows the MDS rejecting the delete request with EACCES: <pre> [11770.089390] ceph: do_request 000000008d72dbb7 done, result -13 </pre> ...remounting the subvolume doesn't help, but if I unmount, reboot the entire cluster clusters (thus restarting all of the MDS's), then I can get to them again: <pre> statx(AT_FDCWD, "/mnt/test/fsstress/p0/d64/d29e/d787/da0a/db79/db99/c297", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFCHR|0444, stx_size=0, ...}) = 0 </pre>