Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.1.0, Lustre 1.8.6
-
None
-
3
-
23,780
-
5009
Description
The patch from Lustre Bugzilla 23780 attachment 31890 was added for RHEL6 support with git commit e550abd05cf7ffddaedbef996be1baaae0912b4a, but a better long term fix is needed.
Johann L. writes in Lustre Bugzilla 23780 comment #28:
> The drawback of this patch is a potential race with fiemap (i did not revert
> the git kernel commit fab3a549e204172236779f502eccb4f9bf0dc87d totally).
and follows up in Lustre Bugzilla 23780 comment #34:
> Please note that this patch is a short term solution.
> Girish, it would be great if you could come up with another patch which takes
> i_data_sem write reference where it is needed in ext4_walk_space().
b1_8 also still requires the fix for SLES 11 SP1.
Info required for matching: sanity-benchmark test_fsx fsx
Panda, I think you are right, I also couldn't find where the extent tree got changed w/o i_mutex hold, but the in the 1st place, in walk_space, ext4_ext_find_extent is called with i_data_sem protection, then there should exist case where extent got change w/o i_mutex protection, so the issue should be what Bzzz mentioned, we'd protect extent access, i.e. put ldiskfs_ext_next_allocated_block() under i_data_sem lock hold.