When project ID feature is not enabled on ldiskfs, the project
ID of any inode should be zero. osd_transfer_project() made
the opposite assertion.
Fixes: LU-10565 osd: move ext4_tranfer_project to osd
Test-Parameters: trivial testlist=sanity-quota testgroup=review-ldiskfs \
mdtfilesystemtype=ldiskfs ostfilesystemtype=ldiskfs
Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I8c065b9453e0e2b3f9f26e39fc82e8e73902df91
Reviewed-on: https://review.whamcloud.com/31947
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Reviewed-by: Gu Zheng <gzheng@ddn.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
if (!ldiskfs_has_feature_project(sb)) {
LASSERT(__kprojid_val(LDISKFS_I(inode)->i_projid)
- != LDISKFS_DEF_PROJID);
+ == LDISKFS_DEF_PROJID);
if (projid != LDISKFS_DEF_PROJID)
return -EOPNOTSUPP;
else
}
run_test 56 "lfs quota -t should work well"
+test_59() {
+ if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
+ skip "ldiskfs only test"
+ return
+ fi
+ disable_project_quota
+ setup_quota_test || error "setup quota failed with $?"
+ quota_init
+
+ local testfile="$DIR/$tdir/$tfile-0"
+ #make sure it did not crash kernel
+ touch $testfile && lfs project -sp 1 $testfile
+
+ enable_project_quota
+ cleanup_quota_test
+}
+run_test 59 "lfs project dosen't crash kernel with project disabled"
+
quota_fini()
{
do_nodes $(comma_list $(nodes_list)) "lctl set_param debug=-quota"