Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
Lustre 2.4.0
-
3
-
6752
Description
Setting the stripe data on a file through the fsetxattr() interface fails to save the pool name. Setting the same stripe data through ioctl() works as expected.
The attached C program demonstrates the problem:
$ bass6@t2vm ~ /dev/pts/0 Fri Feb 08 11:58:47 > gcc -Wall -g -Werror -o pool_test pool_test.c -llustreapi $ bass6@t2vm ~ /dev/pts/0 Fri Feb 08 11:58:59 > sudo ./pool_test /mnt/lustre/ioctl_file /mnt/lustre/fsetxattr_file asdf pool_test: pool_test.c:96: main: Assertion `pool_name_presence(file2, poolname) == 0' failed. $ bass6@t2vm ~ /dev/pts/0 Fri Feb 08 11:59:36 > lfs getstripe /mnt/lustre/ioctl_file /mnt/lustre/ioctl_file lmm_stripe_count: 1 lmm_stripe_size: 1048576 lmm_layout_gen: 0 lmm_stripe_offset: 6 lmm_pool: asdf obdidx objid objid group 6 7 0x7 0x380000400 $ bass6@t2vm ~ /dev/pts/0 Fri Feb 08 11:59:44 > lfs getstripe /mnt/lustre/fsetxattr_file /mnt/lustre/fsetxattr_file lmm_stripe_count: 1 lmm_stripe_size: 1048576 lmm_layout_gen: 0 lmm_stripe_offset: 7 lmm_pool: obdidx objid objid group 7 9 0x9 0x3c0000400
Patch landed to master.