Project

General

Profile

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>

Back