Bug #583
closedcfuse fails snaptest-upchildrealms
50%
Description
Fails to rm a/b, ENOTEMPTY.
Updated by Greg Farnum over 13 years ago
- % Done changed from 0 to 50
Looks like the problem is caused by linking b/bar to b/foo. The server response to goes through insert_dentry_inode via insert_trace, and then it incorrectly(?) relinks the inode from b/foo to b/bar. The relink function also removes b/foo from the list of directory contents in the local cache, which is what causes cfuse to try and delete the not-empty dir. I think the relink is the incorrect step, but am checking, and then need to figure out how to differentiate between good and bad relinking.
Updated by Greg Farnum over 13 years ago
- Status changed from New to Resolved
Okay, a proper fix for this is going to require a bit of work, since right now Inodes can only have one parent dentry. A hacky fix is to remove the I_COMPLETE flag on olddir in the relink function; this will make the client go to the MDS for the complete dir contents, though it'll slow stuff down. Hopefully the client will quickly re-establish the I_COMPLETE once it does go to the MDS.
This does fix the issue and I'm continuing to spot-check it on other workunits just to make sure this doesn't have any odd and unexpected consequences. Pushed in commit:c43455cee4b7b45de6bd04454a40bc7016f2d6d1
Updated by John Spray over 7 years ago
- Project changed from Ceph to CephFS
- Category deleted (
11) - Target version deleted (
v0.23.1)
Bulk updating project=ceph category=ceph-fuse issues to move to fs project so that we can remove the ceph-fuse category from the ceph project