LU-13189 osd-zfs: add project id for old objects without ZFS_PROJID
After project quota zpool upgrade, the ZFS_PROJID
flag could still be missing on some old objects.
We used to check for this and return ENXIO in
osd_declare_attr_set(), however the check is changed
by "LU-12309 osd-zfs: Support disabled project quotas".
Now if the target project id is the default
project id 0, we will pass the check in
osd_declare_attr_set() and trigger the assert in
osd_attr_set() later.
Instead of returning ENXIO, we could adjust the
attribute layout of the old objects to accommodate
project id.
Also add back the logic from "LU-14740 quota: reject
invalid project id on server side", which got removed
by "LU-14927 quota: move qsd_transfer to lquota module",
due to using GPL symbols.
Change-Id: Ib62fdd2a0e07f15ae12daf564273a249a54dd8ea
Fixes:
291e7196d3 ("LU-12309 osd-zfs: Support disabled project quotas")
Fixes:
d2e8208e22 ("LU-14927 quota: move qsd_transfer to lquota module")
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-on: https://review.whamcloud.com/47709
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Nathaniel Clark <nclark@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>