fs/ocfs2/xattr.c | 4 ++++ 1 file changed, 4 insertions(+)
Linus and Andrew are busy, so I don't include them in the patch review phase. This patch continues Linus's job to fix the remaining issue in the reflink preserve path. The patch passed the following tests. from xfstests: ``` ./check -g quick -T -b -s ocfs2 -e generic/032 -e generic/076 \ -e generic/081 -e generic/266 -e generic/272 -e generic/281 \ -e generic/331 -e generic/338 -e generic/347 -e generic/361 \ -e generic/479 -e generic/480 -e generic/628 -e generic/629 \ -e generic/648 -e generic/650 ``` from ocfs2-test: ``` single_run-WIP.sh -f 1 -k /usr/local/ocfs2-test/tmp/linux-2.6.39.tar.gz -l /usr/local/ocfs2-test/log -m /mnt/ocfs2 -d /dev/vde -b 4096 -c 32768 -s pcmk -n hacluster -t reflink xattr-single-run.sh -o /home/ocfs2test/results/ -d /dev/vdb -b 1K -s pcmk -n hacluster -C 4K /mnt/ocfs2 ``` special test: (reflink command is from ocfs2-tools) ``` ## this case will leave one entry after cleanup job ## create file cp /usr/bin/basename /mnt/ocfs2/a0 ## set OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS setfacl -m u:ocfs2test:rwx /mnt/ocfs2/a0 ## check, will output: "user:ocfs2test:rwx" getfacl /mnt/ocfs2/a0 ## set OCFS2_XATTR_INDEX_USER, don't trigger cleanup setfattr -n user.comment -v "tst-xattr" /mnt/ocfs2/a0 ## check, will output: "tst-xattr" getfattr -n user.comment /mnt/ocfs2/a0 ## set OCFS2_XATTR_INDEX_SECURITY setfattr -n security.selinux -v "unconfined_u:object_r:user_home_t:s0" /mnt/ocfs2/a0 ## reflink non-preserve reflink /mnt/ocfs2/a0 /mnt/ocfs2/ra0 ## reflink preserve reflink -p /mnt/ocfs2/a0 /mnt/ocfs2/ra0-p ## check getfacl /mnt/ocfs2/ra0 # "user:ocfs2test:rwx" non-exist getfacl /mnt/ocfs2/ra0-p getfattr -n user.comment /mnt/ocfs2/ra0 # "tst-xattr" exist getfattr -n user.comment /mnt/ocfs2/ra0-p getfattr -n security.selinux /mnt/ocfs2/ra0 # no security attr item getfattr -n security.selinux /mnt/ocfs2/ra0-p ## this case will trigger cleaning up all array entries. ## create file. then set file with OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS and ## OCFS2_XATTR_INDEX_SECURITY cp /usr/bin/basename /mnt/ocfs2/b0 setfacl -m u:ocfs2test:rwx /mnt/ocfs2/b0 setfattr -n security.selinux -v "unconfined_u:object_r:user_home_t:s0" /mnt/ocfs2/b0 ## reflink non-preserve reflink /mnt/ocfs2/b0 /mnt/ocfs2/rb0 ## reflink preserve reflink -p /mnt/ocfs2/b0 /mnt/ocfs2/rb0-p ## check getfacl /mnt/ocfs2/rb0 # "user:ocfs2test:rwx" non-exist getfacl /mnt/ocfs2/rb0-p getfattr -n security.selinux /mnt/ocfs2/rb0 # no security attr item getfattr -n security.selinux /mnt/ocfs2/rb0-p ``` Heming Zhao (1): ocfs2: fix reflink preserve cleanup issue fs/ocfs2/xattr.c | 4 ++++ 1 file changed, 4 insertions(+) -- 2.43.0
sorry, the ocfs2-test cases are incorrect, I will resend this patch. - Heming On 12/10/25 09:50, Heming Zhao wrote: > Linus and Andrew are busy, so I don't include them in the patch review phase. > This patch continues Linus's job to fix the remaining issue in the reflink > preserve path. > > The patch passed the following tests. > > from xfstests: > > ``` > ./check -g quick -T -b -s ocfs2 -e generic/032 -e generic/076 \ > -e generic/081 -e generic/266 -e generic/272 -e generic/281 \ > -e generic/331 -e generic/338 -e generic/347 -e generic/361 \ > -e generic/479 -e generic/480 -e generic/628 -e generic/629 \ > -e generic/648 -e generic/650 > ``` > > > from ocfs2-test: > > ``` > single_run-WIP.sh -f 1 -k /usr/local/ocfs2-test/tmp/linux-2.6.39.tar.gz -l /usr/local/ocfs2-test/log -m /mnt/ocfs2 -d /dev/vde -b 4096 -c 32768 -s pcmk -n hacluster -t reflink > > xattr-single-run.sh -o /home/ocfs2test/results/ -d /dev/vdb -b 1K -s pcmk -n hacluster -C 4K /mnt/ocfs2 > ``` > > special test: > (reflink command is from ocfs2-tools) > > ``` > ## this case will leave one entry after cleanup job > ## create file > cp /usr/bin/basename /mnt/ocfs2/a0 > ## set OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS > setfacl -m u:ocfs2test:rwx /mnt/ocfs2/a0 > ## check, will output: "user:ocfs2test:rwx" > getfacl /mnt/ocfs2/a0 > ## set OCFS2_XATTR_INDEX_USER, don't trigger cleanup > setfattr -n user.comment -v "tst-xattr" /mnt/ocfs2/a0 > ## check, will output: "tst-xattr" > getfattr -n user.comment /mnt/ocfs2/a0 > ## set OCFS2_XATTR_INDEX_SECURITY > setfattr -n security.selinux -v "unconfined_u:object_r:user_home_t:s0" /mnt/ocfs2/a0 > ## reflink non-preserve > reflink /mnt/ocfs2/a0 /mnt/ocfs2/ra0 > ## reflink preserve > reflink -p /mnt/ocfs2/a0 /mnt/ocfs2/ra0-p > ## check > getfacl /mnt/ocfs2/ra0 # "user:ocfs2test:rwx" non-exist > getfacl /mnt/ocfs2/ra0-p > getfattr -n user.comment /mnt/ocfs2/ra0 # "tst-xattr" exist > getfattr -n user.comment /mnt/ocfs2/ra0-p > getfattr -n security.selinux /mnt/ocfs2/ra0 # no security attr item > getfattr -n security.selinux /mnt/ocfs2/ra0-p > > > ## this case will trigger cleaning up all array entries. > ## create file. then set file with OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS and > ## OCFS2_XATTR_INDEX_SECURITY > cp /usr/bin/basename /mnt/ocfs2/b0 > setfacl -m u:ocfs2test:rwx /mnt/ocfs2/b0 > setfattr -n security.selinux -v "unconfined_u:object_r:user_home_t:s0" /mnt/ocfs2/b0 > ## reflink non-preserve > reflink /mnt/ocfs2/b0 /mnt/ocfs2/rb0 > ## reflink preserve > reflink -p /mnt/ocfs2/b0 /mnt/ocfs2/rb0-p > ## check > getfacl /mnt/ocfs2/rb0 # "user:ocfs2test:rwx" non-exist > getfacl /mnt/ocfs2/rb0-p > getfattr -n security.selinux /mnt/ocfs2/rb0 # no security attr item > getfattr -n security.selinux /mnt/ocfs2/rb0-p > ``` > > > Heming Zhao (1): > ocfs2: fix reflink preserve cleanup issue > > fs/ocfs2/xattr.c | 4 ++++ > 1 file changed, 4 insertions(+) >
© 2016 - 2025 Red Hat, Inc.