Message ID | 20170520083954.GA4253@ircssh-2.c.rugged-nimbus-611.internal (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Sargun,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.12-rc2 next-20170522]
[cannot apply to btrfs/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Sargun-Dhillon/BtrFS-QGroups-uapi-improvements/20170523-111746
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=xtensa
All errors (new ones prefixed by >>):
fs/btrfs/tests/qgroup-tests.c: In function 'test_no_shared_qgroup':
>> fs/btrfs/tests/qgroup-tests.c:232:8: error: too few arguments to function 'btrfs_create_qgroup'
ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FS_TREE_OBJECTID);
^
In file included from fs/btrfs/tests/qgroup-tests.c:24:0:
fs/btrfs/tests/../qgroup.h:127:5: note: declared here
int btrfs_create_qgroup(struct btrfs_trans_handle *trans,
^
fs/btrfs/tests/qgroup-tests.c: In function 'test_multiple_refs':
fs/btrfs/tests/qgroup-tests.c:334:8: error: too few arguments to function 'btrfs_create_qgroup'
ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FIRST_FREE_OBJECTID);
^
In file included from fs/btrfs/tests/qgroup-tests.c:24:0:
fs/btrfs/tests/../qgroup.h:127:5: note: declared here
int btrfs_create_qgroup(struct btrfs_trans_handle *trans,
^
vim +/btrfs_create_qgroup +232 fs/btrfs/tests/qgroup-tests.c
442244c9 Qu Wenruo 2015-04-16 226 struct ulist *new_roots = NULL;
faa2dbf0 Josef Bacik 2014-05-07 227 int ret;
faa2dbf0 Josef Bacik 2014-05-07 228
7c55ee0c Omar Sandoval 2015-09-29 229 btrfs_init_dummy_trans(&trans);
faa2dbf0 Josef Bacik 2014-05-07 230
faa2dbf0 Josef Bacik 2014-05-07 231 test_msg("Qgroup basic add\n");
ef9f2db3 Feifei Xu 2016-06-01 @232 ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FS_TREE_OBJECTID);
faa2dbf0 Josef Bacik 2014-05-07 233 if (ret) {
faa2dbf0 Josef Bacik 2014-05-07 234 test_msg("Couldn't create a qgroup %d\n", ret);
faa2dbf0 Josef Bacik 2014-05-07 235 return ret;
:::::: The code at line 232 was first introduced by commit
:::::: ef9f2db365c31433e52b0c5863793273bb632666 Btrfs: self-tests: Use macros instead of constants and add missing newline
:::::: TO: Feifei Xu <xufeifei@linux.vnet.ibm.com>
:::::: CC: David Sterba <dsterba@suse.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Sargun,
[auto build test WARNING on linus/master]
[also build test WARNING on v4.12-rc2 next-20170522]
[cannot apply to btrfs/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Sargun-Dhillon/BtrFS-QGroups-uapi-improvements/20170523-111746
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/linux/compiler.h:264:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> fs/btrfs/tests/qgroup-tests.c:232:34: sparse: not enough arguments for function btrfs_create_qgroup
fs/btrfs/tests/qgroup-tests.c:334:34: sparse: not enough arguments for function btrfs_create_qgroup
fs/btrfs/tests/qgroup-tests.c: In function 'test_no_shared_qgroup':
fs/btrfs/tests/qgroup-tests.c:232:8: error: too few arguments to function 'btrfs_create_qgroup'
ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FS_TREE_OBJECTID);
^~~~~~~~~~~~~~~~~~~
In file included from fs/btrfs/tests/qgroup-tests.c:24:0:
fs/btrfs/tests/../qgroup.h:127:5: note: declared here
int btrfs_create_qgroup(struct btrfs_trans_handle *trans,
^~~~~~~~~~~~~~~~~~~
fs/btrfs/tests/qgroup-tests.c: In function 'test_multiple_refs':
fs/btrfs/tests/qgroup-tests.c:334:8: error: too few arguments to function 'btrfs_create_qgroup'
ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FIRST_FREE_OBJECTID);
^~~~~~~~~~~~~~~~~~~
In file included from fs/btrfs/tests/qgroup-tests.c:24:0:
fs/btrfs/tests/../qgroup.h:127:5: note: declared here
int btrfs_create_qgroup(struct btrfs_trans_handle *trans,
^~~~~~~~~~~~~~~~~~~
vim +232 fs/btrfs/tests/qgroup-tests.c
faa2dbf0 Josef Bacik 2014-05-07 216 btrfs_free_path(path);
faa2dbf0 Josef Bacik 2014-05-07 217 return ret;
faa2dbf0 Josef Bacik 2014-05-07 218 }
faa2dbf0 Josef Bacik 2014-05-07 219
b9ef22de Feifei Xu 2016-06-01 220 static int test_no_shared_qgroup(struct btrfs_root *root,
b9ef22de Feifei Xu 2016-06-01 221 u32 sectorsize, u32 nodesize)
faa2dbf0 Josef Bacik 2014-05-07 222 {
faa2dbf0 Josef Bacik 2014-05-07 223 struct btrfs_trans_handle trans;
faa2dbf0 Josef Bacik 2014-05-07 224 struct btrfs_fs_info *fs_info = root->fs_info;
442244c9 Qu Wenruo 2015-04-16 225 struct ulist *old_roots = NULL;
442244c9 Qu Wenruo 2015-04-16 226 struct ulist *new_roots = NULL;
faa2dbf0 Josef Bacik 2014-05-07 227 int ret;
faa2dbf0 Josef Bacik 2014-05-07 228
7c55ee0c Omar Sandoval 2015-09-29 229 btrfs_init_dummy_trans(&trans);
faa2dbf0 Josef Bacik 2014-05-07 230
faa2dbf0 Josef Bacik 2014-05-07 231 test_msg("Qgroup basic add\n");
ef9f2db3 Feifei Xu 2016-06-01 @232 ret = btrfs_create_qgroup(NULL, fs_info, BTRFS_FS_TREE_OBJECTID);
faa2dbf0 Josef Bacik 2014-05-07 233 if (ret) {
faa2dbf0 Josef Bacik 2014-05-07 234 test_msg("Couldn't create a qgroup %d\n", ret);
faa2dbf0 Josef Bacik 2014-05-07 235 return ret;
faa2dbf0 Josef Bacik 2014-05-07 236 }
faa2dbf0 Josef Bacik 2014-05-07 237
442244c9 Qu Wenruo 2015-04-16 238 /*
01327610 Nicholas D Steeves 2016-05-19 239 * Since the test trans doesn't have the complicated delayed refs,
442244c9 Qu Wenruo 2015-04-16 240 * we can only call btrfs_qgroup_account_extent() directly to test
:::::: The code at line 232 was first introduced by commit
:::::: ef9f2db365c31433e52b0c5863793273bb632666 Btrfs: self-tests: Use macros instead of constants and add missing newline
:::::: TO: Feifei Xu <xufeifei@linux.vnet.ibm.com>
:::::: CC: David Sterba <dsterba@suse.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 2b1a8c1..5e20643 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4972,7 +4972,7 @@ static long btrfs_ioctl_qgroup_create(struct file *file, void __user *arg) /* FIXME: check if the IDs really exist */ if (sa->create) { - ret = btrfs_create_qgroup(trans, fs_info, sa->qgroupid); + ret = btrfs_create_qgroup(trans, fs_info, sa->qgroupid, 0); } else { ret = btrfs_remove_qgroup(trans, fs_info, sa->qgroupid, 0); } diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index a0699fd..28e2c7f 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -1317,10 +1317,19 @@ static int __btrfs_create_qgroup(struct btrfs_trans_handle *trans, } int btrfs_create_qgroup(struct btrfs_trans_handle *trans, - struct btrfs_fs_info *fs_info, u64 qgroupid) + struct btrfs_fs_info *fs_info, u64 qgroupid, + int check_subvol_exists) { int ret; + if (check_subvol_exists && btrfs_qgroup_level(qgroupid) == 0) { + ret = btrfs_subvolume_exists(fs_info, qgroupid); + if (ret < 0) + return ret; + if (!ret) + return -ENOENT; + } + mutex_lock(&fs_info->qgroup_ioctl_lock); ret = __btrfs_create_qgroup(trans, fs_info, qgroupid); mutex_unlock(&fs_info->qgroup_ioctl_lock); diff --git a/fs/btrfs/qgroup.h b/fs/btrfs/qgroup.h index fc08bdb..1afbe40 100644 --- a/fs/btrfs/qgroup.h +++ b/fs/btrfs/qgroup.h @@ -125,7 +125,8 @@ int btrfs_add_qgroup_relation(struct btrfs_trans_handle *trans, int btrfs_del_qgroup_relation(struct btrfs_trans_handle *trans, struct btrfs_fs_info *fs_info, u64 src, u64 dst); int btrfs_create_qgroup(struct btrfs_trans_handle *trans, - struct btrfs_fs_info *fs_info, u64 qgroupid); + struct btrfs_fs_info *fs_info, u64 qgroupid, + int check_subvol_exists); int btrfs_remove_qgroup(struct btrfs_trans_handle *trans, struct btrfs_fs_info *fs_info, u64 qgroupid, int check_in_use);
This patch is to prepare for following patches in this patchset. The code allows you to check if a subvol exists, and to only allow the creation of qgroups on subvols that already exist. It doesn't make sense to allow the creation of level 0 qgroups otherwise. The behaviour is to inherit (create) a qgroup when you create a new subvol with quota on. If there is an existing qgroup with this same ID, it will be reset. Signed-off-by: Sargun Dhillon <sargun@sargun.me> --- fs/btrfs/ioctl.c | 2 +- fs/btrfs/qgroup.c | 11 ++++++++++- fs/btrfs/qgroup.h | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-)