From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: Re: [PATCH 3/3] btrfs: migrate to the newer memparse_safe() helper
Date: Tue, 26 Dec 2023 09:24:40 +0800 [thread overview]
Message-ID: <202312260953.igCSOI51-lkp@intel.com> (raw)
::::::
:::::: Manual check reason: "low confidence static check warning: fs/btrfs/super.c:403:17: sparse: sparse: typename in expression"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <6dfa53ded887caa2269c1beeaedcff086342339a.1703324146.git.wqu@suse.com>
References: <6dfa53ded887caa2269c1beeaedcff086342339a.1703324146.git.wqu@suse.com>
TO: Qu Wenruo <wqu@suse.com>
TO: linux-btrfs@vger.kernel.org
TO: linux-kernel@vger.kernel.org
TO: akpm@linux-foundation.org
TO: christophe.jaillet@wanadoo.fr
TO: andriy.shevchenko@linux.intel.com
TO: David.Laight@ACULAB.COM
TO: ddiss@suse.de
Hi Qu,
kernel test robot noticed the following build warnings:
[auto build test WARNING on kdave/for-next]
[also build test WARNING on next-20231222]
[cannot apply to akpm-mm/mm-nonmm-unstable akpm-mm/mm-everything linus/master v6.7-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Qu-Wenruo/kstrtox-introduce-a-safer-version-of-memparse/20231225-151921
base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
patch link: https://lore.kernel.org/r/6dfa53ded887caa2269c1beeaedcff086342339a.1703324146.git.wqu%40suse.com
patch subject: [PATCH 3/3] btrfs: migrate to the newer memparse_safe() helper
:::::: branch date: 18 hours ago
:::::: commit date: 18 hours ago
config: s390-randconfig-r112-20231226 (https://download.01.org/0day-ci/archive/20231226/202312260953.igCSOI51-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231226/202312260953.igCSOI51-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202312260953.igCSOI51-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> fs/btrfs/super.c:403:17: sparse: sparse: typename in expression
fs/btrfs/super.c:403:21: sparse: sparse: Expected ; at end of statement
fs/btrfs/super.c:403:21: sparse: sparse: got ret
fs/btrfs/super.c:403:17: sparse: sparse: undefined identifier 'int'
fs/btrfs/super.c:405:17: sparse: sparse: undefined identifier 'ret'
fs/btrfs/super.c:407:21: sparse: sparse: undefined identifier 'ret'
fs/btrfs/super.c:409:32: sparse: sparse: undefined identifier 'ret'
vim +403 fs/btrfs/super.c
15ddcdd34ebfe7 Josef Bacik 2023-11-22 261
17b3612022fe53 Josef Bacik 2023-11-22 262 static int btrfs_parse_param(struct fs_context *fc, struct fs_parameter *param)
17b3612022fe53 Josef Bacik 2023-11-22 263 {
17b3612022fe53 Josef Bacik 2023-11-22 264 struct btrfs_fs_context *ctx = fc->fs_private;
17b3612022fe53 Josef Bacik 2023-11-22 265 struct fs_parse_result result;
17b3612022fe53 Josef Bacik 2023-11-22 266 int opt;
17b3612022fe53 Josef Bacik 2023-11-22 267
17b3612022fe53 Josef Bacik 2023-11-22 268 opt = fs_parse(fc, btrfs_fs_parameters, param, &result);
17b3612022fe53 Josef Bacik 2023-11-22 269 if (opt < 0)
17b3612022fe53 Josef Bacik 2023-11-22 270 return opt;
17b3612022fe53 Josef Bacik 2023-11-22 271
17b3612022fe53 Josef Bacik 2023-11-22 272 switch (opt) {
17b3612022fe53 Josef Bacik 2023-11-22 273 case Opt_degraded:
17b3612022fe53 Josef Bacik 2023-11-22 274 btrfs_set_opt(ctx->mount_opt, DEGRADED);
17b3612022fe53 Josef Bacik 2023-11-22 275 break;
17b3612022fe53 Josef Bacik 2023-11-22 276 case Opt_subvol_empty:
17b3612022fe53 Josef Bacik 2023-11-22 277 /*
17b3612022fe53 Josef Bacik 2023-11-22 278 * This exists because we used to allow it on accident, so we're
17b3612022fe53 Josef Bacik 2023-11-22 279 * keeping it to maintain ABI. See 37becec95ac3 ("Btrfs: allow
17b3612022fe53 Josef Bacik 2023-11-22 280 * empty subvol= again").
17b3612022fe53 Josef Bacik 2023-11-22 281 */
17b3612022fe53 Josef Bacik 2023-11-22 282 break;
17b3612022fe53 Josef Bacik 2023-11-22 283 case Opt_subvol:
17b3612022fe53 Josef Bacik 2023-11-22 284 kfree(ctx->subvol_name);
17b3612022fe53 Josef Bacik 2023-11-22 285 ctx->subvol_name = kstrdup(param->string, GFP_KERNEL);
17b3612022fe53 Josef Bacik 2023-11-22 286 if (!ctx->subvol_name)
17b3612022fe53 Josef Bacik 2023-11-22 287 return -ENOMEM;
17b3612022fe53 Josef Bacik 2023-11-22 288 break;
17b3612022fe53 Josef Bacik 2023-11-22 289 case Opt_subvolid:
17b3612022fe53 Josef Bacik 2023-11-22 290 ctx->subvol_objectid = result.uint_64;
17b3612022fe53 Josef Bacik 2023-11-22 291
17b3612022fe53 Josef Bacik 2023-11-22 292 /* subvolid=0 means give me the original fs_tree. */
17b3612022fe53 Josef Bacik 2023-11-22 293 if (!ctx->subvol_objectid)
17b3612022fe53 Josef Bacik 2023-11-22 294 ctx->subvol_objectid = BTRFS_FS_TREE_OBJECTID;
17b3612022fe53 Josef Bacik 2023-11-22 295 break;
17b3612022fe53 Josef Bacik 2023-11-22 296 case Opt_device: {
17b3612022fe53 Josef Bacik 2023-11-22 297 struct btrfs_device *device;
17b3612022fe53 Josef Bacik 2023-11-22 298 blk_mode_t mode = sb_open_mode(fc->sb_flags);
17b3612022fe53 Josef Bacik 2023-11-22 299
17b3612022fe53 Josef Bacik 2023-11-22 300 mutex_lock(&uuid_mutex);
17b3612022fe53 Josef Bacik 2023-11-22 301 device = btrfs_scan_one_device(param->string, mode, false);
17b3612022fe53 Josef Bacik 2023-11-22 302 mutex_unlock(&uuid_mutex);
17b3612022fe53 Josef Bacik 2023-11-22 303 if (IS_ERR(device))
17b3612022fe53 Josef Bacik 2023-11-22 304 return PTR_ERR(device);
17b3612022fe53 Josef Bacik 2023-11-22 305 break;
17b3612022fe53 Josef Bacik 2023-11-22 306 }
17b3612022fe53 Josef Bacik 2023-11-22 307 case Opt_datasum:
17b3612022fe53 Josef Bacik 2023-11-22 308 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 309 btrfs_set_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 310 } else {
17b3612022fe53 Josef Bacik 2023-11-22 311 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 312 btrfs_clear_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 313 }
17b3612022fe53 Josef Bacik 2023-11-22 314 break;
17b3612022fe53 Josef Bacik 2023-11-22 315 case Opt_datacow:
17b3612022fe53 Josef Bacik 2023-11-22 316 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 317 btrfs_clear_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 318 btrfs_clear_opt(ctx->mount_opt, FORCE_COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 319 btrfs_set_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 320 btrfs_set_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 321 } else {
17b3612022fe53 Josef Bacik 2023-11-22 322 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 323 }
17b3612022fe53 Josef Bacik 2023-11-22 324 break;
17b3612022fe53 Josef Bacik 2023-11-22 325 case Opt_compress_force:
17b3612022fe53 Josef Bacik 2023-11-22 326 case Opt_compress_force_type:
17b3612022fe53 Josef Bacik 2023-11-22 327 btrfs_set_opt(ctx->mount_opt, FORCE_COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 328 fallthrough;
17b3612022fe53 Josef Bacik 2023-11-22 329 case Opt_compress:
17b3612022fe53 Josef Bacik 2023-11-22 330 case Opt_compress_type:
17b3612022fe53 Josef Bacik 2023-11-22 331 if (opt == Opt_compress || opt == Opt_compress_force) {
17b3612022fe53 Josef Bacik 2023-11-22 332 ctx->compress_type = BTRFS_COMPRESS_ZLIB;
17b3612022fe53 Josef Bacik 2023-11-22 333 ctx->compress_level = BTRFS_ZLIB_DEFAULT_LEVEL;
17b3612022fe53 Josef Bacik 2023-11-22 334 btrfs_set_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 335 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 336 btrfs_clear_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 337 } else if (strncmp(param->string, "zlib", 4) == 0) {
17b3612022fe53 Josef Bacik 2023-11-22 338 ctx->compress_type = BTRFS_COMPRESS_ZLIB;
17b3612022fe53 Josef Bacik 2023-11-22 339 ctx->compress_level =
17b3612022fe53 Josef Bacik 2023-11-22 340 btrfs_compress_str2level(BTRFS_COMPRESS_ZLIB,
17b3612022fe53 Josef Bacik 2023-11-22 341 param->string + 4);
17b3612022fe53 Josef Bacik 2023-11-22 342 btrfs_set_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 343 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 344 btrfs_clear_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 345 } else if (strncmp(param->string, "lzo", 3) == 0) {
17b3612022fe53 Josef Bacik 2023-11-22 346 ctx->compress_type = BTRFS_COMPRESS_LZO;
17b3612022fe53 Josef Bacik 2023-11-22 347 ctx->compress_level = 0;
17b3612022fe53 Josef Bacik 2023-11-22 348 btrfs_set_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 349 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 350 btrfs_clear_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 351 } else if (strncmp(param->string, "zstd", 4) == 0) {
17b3612022fe53 Josef Bacik 2023-11-22 352 ctx->compress_type = BTRFS_COMPRESS_ZSTD;
17b3612022fe53 Josef Bacik 2023-11-22 353 ctx->compress_level =
17b3612022fe53 Josef Bacik 2023-11-22 354 btrfs_compress_str2level(BTRFS_COMPRESS_ZSTD,
17b3612022fe53 Josef Bacik 2023-11-22 355 param->string + 4);
17b3612022fe53 Josef Bacik 2023-11-22 356 btrfs_set_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 357 btrfs_clear_opt(ctx->mount_opt, NODATACOW);
17b3612022fe53 Josef Bacik 2023-11-22 358 btrfs_clear_opt(ctx->mount_opt, NODATASUM);
17b3612022fe53 Josef Bacik 2023-11-22 359 } else if (strncmp(param->string, "no", 2) == 0) {
17b3612022fe53 Josef Bacik 2023-11-22 360 ctx->compress_level = 0;
17b3612022fe53 Josef Bacik 2023-11-22 361 ctx->compress_type = 0;
17b3612022fe53 Josef Bacik 2023-11-22 362 btrfs_clear_opt(ctx->mount_opt, COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 363 btrfs_clear_opt(ctx->mount_opt, FORCE_COMPRESS);
17b3612022fe53 Josef Bacik 2023-11-22 364 } else {
17b3612022fe53 Josef Bacik 2023-11-22 365 btrfs_err(NULL, "unrecognized compression value %s",
17b3612022fe53 Josef Bacik 2023-11-22 366 param->string);
17b3612022fe53 Josef Bacik 2023-11-22 367 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 368 }
17b3612022fe53 Josef Bacik 2023-11-22 369 break;
17b3612022fe53 Josef Bacik 2023-11-22 370 case Opt_ssd:
17b3612022fe53 Josef Bacik 2023-11-22 371 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 372 btrfs_set_opt(ctx->mount_opt, NOSSD);
17b3612022fe53 Josef Bacik 2023-11-22 373 btrfs_clear_opt(ctx->mount_opt, SSD);
17b3612022fe53 Josef Bacik 2023-11-22 374 btrfs_clear_opt(ctx->mount_opt, SSD_SPREAD);
17b3612022fe53 Josef Bacik 2023-11-22 375 } else {
17b3612022fe53 Josef Bacik 2023-11-22 376 btrfs_set_opt(ctx->mount_opt, SSD);
17b3612022fe53 Josef Bacik 2023-11-22 377 btrfs_clear_opt(ctx->mount_opt, NOSSD);
17b3612022fe53 Josef Bacik 2023-11-22 378 }
17b3612022fe53 Josef Bacik 2023-11-22 379 break;
17b3612022fe53 Josef Bacik 2023-11-22 380 case Opt_ssd_spread:
17b3612022fe53 Josef Bacik 2023-11-22 381 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 382 btrfs_clear_opt(ctx->mount_opt, SSD_SPREAD);
17b3612022fe53 Josef Bacik 2023-11-22 383 } else {
17b3612022fe53 Josef Bacik 2023-11-22 384 btrfs_set_opt(ctx->mount_opt, SSD);
17b3612022fe53 Josef Bacik 2023-11-22 385 btrfs_set_opt(ctx->mount_opt, SSD_SPREAD);
17b3612022fe53 Josef Bacik 2023-11-22 386 btrfs_clear_opt(ctx->mount_opt, NOSSD);
17b3612022fe53 Josef Bacik 2023-11-22 387 }
17b3612022fe53 Josef Bacik 2023-11-22 388 break;
17b3612022fe53 Josef Bacik 2023-11-22 389 case Opt_barrier:
17b3612022fe53 Josef Bacik 2023-11-22 390 if (result.negated)
17b3612022fe53 Josef Bacik 2023-11-22 391 btrfs_set_opt(ctx->mount_opt, NOBARRIER);
17b3612022fe53 Josef Bacik 2023-11-22 392 else
17b3612022fe53 Josef Bacik 2023-11-22 393 btrfs_clear_opt(ctx->mount_opt, NOBARRIER);
17b3612022fe53 Josef Bacik 2023-11-22 394 break;
17b3612022fe53 Josef Bacik 2023-11-22 395 case Opt_thread_pool:
17b3612022fe53 Josef Bacik 2023-11-22 396 if (result.uint_32 == 0) {
17b3612022fe53 Josef Bacik 2023-11-22 397 btrfs_err(NULL, "invalid value 0 for thread_pool");
17b3612022fe53 Josef Bacik 2023-11-22 398 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 399 }
17b3612022fe53 Josef Bacik 2023-11-22 400 ctx->thread_pool_size = result.uint_32;
17b3612022fe53 Josef Bacik 2023-11-22 401 break;
17b3612022fe53 Josef Bacik 2023-11-22 402 case Opt_max_inline:
eb3fb8b856cc42 Qu Wenruo 2023-12-23 @403 int ret;
eb3fb8b856cc42 Qu Wenruo 2023-12-23 404
eb3fb8b856cc42 Qu Wenruo 2023-12-23 405 ret = memparse_safe(param->string, MEMPARSE_SUFFIXES_DEFAULT,
eb3fb8b856cc42 Qu Wenruo 2023-12-23 406 &ctx->max_inline, NULL);
eb3fb8b856cc42 Qu Wenruo 2023-12-23 407 if (ret < 0) {
eb3fb8b856cc42 Qu Wenruo 2023-12-23 408 btrfs_err(NULL, "invalid string \"%s\"", param->string);
eb3fb8b856cc42 Qu Wenruo 2023-12-23 409 return ret;
eb3fb8b856cc42 Qu Wenruo 2023-12-23 410 }
17b3612022fe53 Josef Bacik 2023-11-22 411 ctx->max_inline = memparse(param->string, NULL);
17b3612022fe53 Josef Bacik 2023-11-22 412 break;
17b3612022fe53 Josef Bacik 2023-11-22 413 case Opt_acl:
17b3612022fe53 Josef Bacik 2023-11-22 414 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 415 fc->sb_flags &= ~SB_POSIXACL;
17b3612022fe53 Josef Bacik 2023-11-22 416 } else {
17b3612022fe53 Josef Bacik 2023-11-22 417 #ifdef CONFIG_BTRFS_FS_POSIX_ACL
17b3612022fe53 Josef Bacik 2023-11-22 418 fc->sb_flags |= SB_POSIXACL;
17b3612022fe53 Josef Bacik 2023-11-22 419 #else
17b3612022fe53 Josef Bacik 2023-11-22 420 btrfs_err(NULL, "support for ACL not compiled in");
17b3612022fe53 Josef Bacik 2023-11-22 421 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 422 #endif
17b3612022fe53 Josef Bacik 2023-11-22 423 }
17b3612022fe53 Josef Bacik 2023-11-22 424 /*
17b3612022fe53 Josef Bacik 2023-11-22 425 * VFS limits the ability to toggle ACL on and off via remount,
17b3612022fe53 Josef Bacik 2023-11-22 426 * despite every file system allowing this. This seems to be
17b3612022fe53 Josef Bacik 2023-11-22 427 * an oversight since we all do, but it'll fail if we're
17b3612022fe53 Josef Bacik 2023-11-22 428 * remounting. So don't set the mask here, we'll check it in
17b3612022fe53 Josef Bacik 2023-11-22 429 * btrfs_reconfigure and do the toggling ourselves.
17b3612022fe53 Josef Bacik 2023-11-22 430 */
17b3612022fe53 Josef Bacik 2023-11-22 431 if (fc->purpose != FS_CONTEXT_FOR_RECONFIGURE)
17b3612022fe53 Josef Bacik 2023-11-22 432 fc->sb_flags_mask |= SB_POSIXACL;
17b3612022fe53 Josef Bacik 2023-11-22 433 break;
17b3612022fe53 Josef Bacik 2023-11-22 434 case Opt_treelog:
17b3612022fe53 Josef Bacik 2023-11-22 435 if (result.negated)
17b3612022fe53 Josef Bacik 2023-11-22 436 btrfs_set_opt(ctx->mount_opt, NOTREELOG);
17b3612022fe53 Josef Bacik 2023-11-22 437 else
17b3612022fe53 Josef Bacik 2023-11-22 438 btrfs_clear_opt(ctx->mount_opt, NOTREELOG);
17b3612022fe53 Josef Bacik 2023-11-22 439 break;
17b3612022fe53 Josef Bacik 2023-11-22 440 case Opt_nologreplay:
17b3612022fe53 Josef Bacik 2023-11-22 441 btrfs_warn(NULL,
17b3612022fe53 Josef Bacik 2023-11-22 442 "'nologreplay' is deprecated, use 'rescue=nologreplay' instead");
17b3612022fe53 Josef Bacik 2023-11-22 443 btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
17b3612022fe53 Josef Bacik 2023-11-22 444 break;
17b3612022fe53 Josef Bacik 2023-11-22 445 case Opt_flushoncommit:
17b3612022fe53 Josef Bacik 2023-11-22 446 if (result.negated)
17b3612022fe53 Josef Bacik 2023-11-22 447 btrfs_clear_opt(ctx->mount_opt, FLUSHONCOMMIT);
17b3612022fe53 Josef Bacik 2023-11-22 448 else
17b3612022fe53 Josef Bacik 2023-11-22 449 btrfs_set_opt(ctx->mount_opt, FLUSHONCOMMIT);
17b3612022fe53 Josef Bacik 2023-11-22 450 break;
17b3612022fe53 Josef Bacik 2023-11-22 451 case Opt_ratio:
17b3612022fe53 Josef Bacik 2023-11-22 452 ctx->metadata_ratio = result.uint_32;
17b3612022fe53 Josef Bacik 2023-11-22 453 break;
17b3612022fe53 Josef Bacik 2023-11-22 454 case Opt_discard:
17b3612022fe53 Josef Bacik 2023-11-22 455 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 456 btrfs_clear_opt(ctx->mount_opt, DISCARD_SYNC);
17b3612022fe53 Josef Bacik 2023-11-22 457 btrfs_clear_opt(ctx->mount_opt, DISCARD_ASYNC);
17b3612022fe53 Josef Bacik 2023-11-22 458 btrfs_set_opt(ctx->mount_opt, NODISCARD);
17b3612022fe53 Josef Bacik 2023-11-22 459 } else {
17b3612022fe53 Josef Bacik 2023-11-22 460 btrfs_set_opt(ctx->mount_opt, DISCARD_SYNC);
17b3612022fe53 Josef Bacik 2023-11-22 461 btrfs_clear_opt(ctx->mount_opt, DISCARD_ASYNC);
17b3612022fe53 Josef Bacik 2023-11-22 462 }
17b3612022fe53 Josef Bacik 2023-11-22 463 break;
17b3612022fe53 Josef Bacik 2023-11-22 464 case Opt_discard_mode:
17b3612022fe53 Josef Bacik 2023-11-22 465 switch (result.uint_32) {
17b3612022fe53 Josef Bacik 2023-11-22 466 case Opt_discard_sync:
17b3612022fe53 Josef Bacik 2023-11-22 467 btrfs_clear_opt(ctx->mount_opt, DISCARD_ASYNC);
17b3612022fe53 Josef Bacik 2023-11-22 468 btrfs_set_opt(ctx->mount_opt, DISCARD_SYNC);
17b3612022fe53 Josef Bacik 2023-11-22 469 break;
17b3612022fe53 Josef Bacik 2023-11-22 470 case Opt_discard_async:
17b3612022fe53 Josef Bacik 2023-11-22 471 btrfs_clear_opt(ctx->mount_opt, DISCARD_SYNC);
17b3612022fe53 Josef Bacik 2023-11-22 472 btrfs_set_opt(ctx->mount_opt, DISCARD_ASYNC);
17b3612022fe53 Josef Bacik 2023-11-22 473 break;
17b3612022fe53 Josef Bacik 2023-11-22 474 default:
17b3612022fe53 Josef Bacik 2023-11-22 475 btrfs_err(NULL, "unrecognized discard mode value %s",
17b3612022fe53 Josef Bacik 2023-11-22 476 param->key);
17b3612022fe53 Josef Bacik 2023-11-22 477 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 478 }
17b3612022fe53 Josef Bacik 2023-11-22 479 btrfs_clear_opt(ctx->mount_opt, NODISCARD);
17b3612022fe53 Josef Bacik 2023-11-22 480 break;
17b3612022fe53 Josef Bacik 2023-11-22 481 case Opt_space_cache:
17b3612022fe53 Josef Bacik 2023-11-22 482 if (result.negated) {
17b3612022fe53 Josef Bacik 2023-11-22 483 btrfs_set_opt(ctx->mount_opt, NOSPACECACHE);
17b3612022fe53 Josef Bacik 2023-11-22 484 btrfs_clear_opt(ctx->mount_opt, SPACE_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 485 btrfs_clear_opt(ctx->mount_opt, FREE_SPACE_TREE);
17b3612022fe53 Josef Bacik 2023-11-22 486 } else {
17b3612022fe53 Josef Bacik 2023-11-22 487 btrfs_clear_opt(ctx->mount_opt, FREE_SPACE_TREE);
17b3612022fe53 Josef Bacik 2023-11-22 488 btrfs_set_opt(ctx->mount_opt, SPACE_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 489 }
17b3612022fe53 Josef Bacik 2023-11-22 490 break;
17b3612022fe53 Josef Bacik 2023-11-22 491 case Opt_space_cache_version:
17b3612022fe53 Josef Bacik 2023-11-22 492 switch (result.uint_32) {
17b3612022fe53 Josef Bacik 2023-11-22 493 case Opt_space_cache_v1:
17b3612022fe53 Josef Bacik 2023-11-22 494 btrfs_set_opt(ctx->mount_opt, SPACE_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 495 btrfs_clear_opt(ctx->mount_opt, FREE_SPACE_TREE);
17b3612022fe53 Josef Bacik 2023-11-22 496 break;
17b3612022fe53 Josef Bacik 2023-11-22 497 case Opt_space_cache_v2:
17b3612022fe53 Josef Bacik 2023-11-22 498 btrfs_clear_opt(ctx->mount_opt, SPACE_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 499 btrfs_set_opt(ctx->mount_opt, FREE_SPACE_TREE);
17b3612022fe53 Josef Bacik 2023-11-22 500 break;
17b3612022fe53 Josef Bacik 2023-11-22 501 default:
17b3612022fe53 Josef Bacik 2023-11-22 502 btrfs_err(NULL, "unrecognized space_cache value %s",
17b3612022fe53 Josef Bacik 2023-11-22 503 param->key);
17b3612022fe53 Josef Bacik 2023-11-22 504 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 505 }
17b3612022fe53 Josef Bacik 2023-11-22 506 break;
17b3612022fe53 Josef Bacik 2023-11-22 507 case Opt_rescan_uuid_tree:
17b3612022fe53 Josef Bacik 2023-11-22 508 btrfs_set_opt(ctx->mount_opt, RESCAN_UUID_TREE);
17b3612022fe53 Josef Bacik 2023-11-22 509 break;
17b3612022fe53 Josef Bacik 2023-11-22 510 case Opt_clear_cache:
17b3612022fe53 Josef Bacik 2023-11-22 511 btrfs_set_opt(ctx->mount_opt, CLEAR_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 512 break;
17b3612022fe53 Josef Bacik 2023-11-22 513 case Opt_user_subvol_rm_allowed:
17b3612022fe53 Josef Bacik 2023-11-22 514 btrfs_set_opt(ctx->mount_opt, USER_SUBVOL_RM_ALLOWED);
17b3612022fe53 Josef Bacik 2023-11-22 515 break;
17b3612022fe53 Josef Bacik 2023-11-22 516 case Opt_enospc_debug:
17b3612022fe53 Josef Bacik 2023-11-22 517 if (result.negated)
17b3612022fe53 Josef Bacik 2023-11-22 518 btrfs_clear_opt(ctx->mount_opt, ENOSPC_DEBUG);
17b3612022fe53 Josef Bacik 2023-11-22 519 else
17b3612022fe53 Josef Bacik 2023-11-22 520 btrfs_set_opt(ctx->mount_opt, ENOSPC_DEBUG);
17b3612022fe53 Josef Bacik 2023-11-22 521 break;
17b3612022fe53 Josef Bacik 2023-11-22 522 case Opt_defrag:
17b3612022fe53 Josef Bacik 2023-11-22 523 if (result.negated)
17b3612022fe53 Josef Bacik 2023-11-22 524 btrfs_clear_opt(ctx->mount_opt, AUTO_DEFRAG);
17b3612022fe53 Josef Bacik 2023-11-22 525 else
17b3612022fe53 Josef Bacik 2023-11-22 526 btrfs_set_opt(ctx->mount_opt, AUTO_DEFRAG);
17b3612022fe53 Josef Bacik 2023-11-22 527 break;
17b3612022fe53 Josef Bacik 2023-11-22 528 case Opt_usebackuproot:
17b3612022fe53 Josef Bacik 2023-11-22 529 btrfs_warn(NULL,
17b3612022fe53 Josef Bacik 2023-11-22 530 "'usebackuproot' is deprecated, use 'rescue=usebackuproot' instead");
17b3612022fe53 Josef Bacik 2023-11-22 531 btrfs_set_opt(ctx->mount_opt, USEBACKUPROOT);
9fb3b1a7fed796 Josef Bacik 2023-11-22 532
9fb3b1a7fed796 Josef Bacik 2023-11-22 533 /* If we're loading the backup roots we can't trust the space cache. */
9fb3b1a7fed796 Josef Bacik 2023-11-22 534 btrfs_set_opt(ctx->mount_opt, CLEAR_CACHE);
17b3612022fe53 Josef Bacik 2023-11-22 535 break;
17b3612022fe53 Josef Bacik 2023-11-22 536 case Opt_skip_balance:
17b3612022fe53 Josef Bacik 2023-11-22 537 btrfs_set_opt(ctx->mount_opt, SKIP_BALANCE);
17b3612022fe53 Josef Bacik 2023-11-22 538 break;
17b3612022fe53 Josef Bacik 2023-11-22 539 case Opt_fatal_errors:
17b3612022fe53 Josef Bacik 2023-11-22 540 switch (result.uint_32) {
17b3612022fe53 Josef Bacik 2023-11-22 541 case Opt_fatal_errors_panic:
17b3612022fe53 Josef Bacik 2023-11-22 542 btrfs_set_opt(ctx->mount_opt, PANIC_ON_FATAL_ERROR);
17b3612022fe53 Josef Bacik 2023-11-22 543 break;
17b3612022fe53 Josef Bacik 2023-11-22 544 case Opt_fatal_errors_bug:
17b3612022fe53 Josef Bacik 2023-11-22 545 btrfs_clear_opt(ctx->mount_opt, PANIC_ON_FATAL_ERROR);
17b3612022fe53 Josef Bacik 2023-11-22 546 break;
17b3612022fe53 Josef Bacik 2023-11-22 547 default:
17b3612022fe53 Josef Bacik 2023-11-22 548 btrfs_err(NULL, "unrecognized fatal_errors value %s",
17b3612022fe53 Josef Bacik 2023-11-22 549 param->key);
17b3612022fe53 Josef Bacik 2023-11-22 550 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 551 }
17b3612022fe53 Josef Bacik 2023-11-22 552 break;
17b3612022fe53 Josef Bacik 2023-11-22 553 case Opt_commit_interval:
17b3612022fe53 Josef Bacik 2023-11-22 554 ctx->commit_interval = result.uint_32;
17b3612022fe53 Josef Bacik 2023-11-22 555 if (ctx->commit_interval == 0)
17b3612022fe53 Josef Bacik 2023-11-22 556 ctx->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
17b3612022fe53 Josef Bacik 2023-11-22 557 break;
17b3612022fe53 Josef Bacik 2023-11-22 558 case Opt_rescue:
17b3612022fe53 Josef Bacik 2023-11-22 559 switch (result.uint_32) {
17b3612022fe53 Josef Bacik 2023-11-22 560 case Opt_rescue_usebackuproot:
17b3612022fe53 Josef Bacik 2023-11-22 561 btrfs_set_opt(ctx->mount_opt, USEBACKUPROOT);
17b3612022fe53 Josef Bacik 2023-11-22 562 break;
17b3612022fe53 Josef Bacik 2023-11-22 563 case Opt_rescue_nologreplay:
17b3612022fe53 Josef Bacik 2023-11-22 564 btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
17b3612022fe53 Josef Bacik 2023-11-22 565 break;
17b3612022fe53 Josef Bacik 2023-11-22 566 case Opt_rescue_ignorebadroots:
17b3612022fe53 Josef Bacik 2023-11-22 567 btrfs_set_opt(ctx->mount_opt, IGNOREBADROOTS);
17b3612022fe53 Josef Bacik 2023-11-22 568 break;
17b3612022fe53 Josef Bacik 2023-11-22 569 case Opt_rescue_ignoredatacsums:
17b3612022fe53 Josef Bacik 2023-11-22 570 btrfs_set_opt(ctx->mount_opt, IGNOREDATACSUMS);
17b3612022fe53 Josef Bacik 2023-11-22 571 break;
17b3612022fe53 Josef Bacik 2023-11-22 572 case Opt_rescue_parameter_all:
17b3612022fe53 Josef Bacik 2023-11-22 573 btrfs_set_opt(ctx->mount_opt, IGNOREDATACSUMS);
17b3612022fe53 Josef Bacik 2023-11-22 574 btrfs_set_opt(ctx->mount_opt, IGNOREBADROOTS);
17b3612022fe53 Josef Bacik 2023-11-22 575 btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
17b3612022fe53 Josef Bacik 2023-11-22 576 break;
17b3612022fe53 Josef Bacik 2023-11-22 577 default:
17b3612022fe53 Josef Bacik 2023-11-22 578 btrfs_info(NULL, "unrecognized rescue option '%s'",
17b3612022fe53 Josef Bacik 2023-11-22 579 param->key);
17b3612022fe53 Josef Bacik 2023-11-22 580 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 581 }
17b3612022fe53 Josef Bacik 2023-11-22 582 break;
17b3612022fe53 Josef Bacik 2023-11-22 583 #ifdef CONFIG_BTRFS_DEBUG
17b3612022fe53 Josef Bacik 2023-11-22 584 case Opt_fragment:
17b3612022fe53 Josef Bacik 2023-11-22 585 switch (result.uint_32) {
17b3612022fe53 Josef Bacik 2023-11-22 586 case Opt_fragment_parameter_all:
17b3612022fe53 Josef Bacik 2023-11-22 587 btrfs_set_opt(ctx->mount_opt, FRAGMENT_DATA);
17b3612022fe53 Josef Bacik 2023-11-22 588 btrfs_set_opt(ctx->mount_opt, FRAGMENT_METADATA);
17b3612022fe53 Josef Bacik 2023-11-22 589 break;
17b3612022fe53 Josef Bacik 2023-11-22 590 case Opt_fragment_parameter_metadata:
17b3612022fe53 Josef Bacik 2023-11-22 591 btrfs_set_opt(ctx->mount_opt, FRAGMENT_METADATA);
17b3612022fe53 Josef Bacik 2023-11-22 592 break;
17b3612022fe53 Josef Bacik 2023-11-22 593 case Opt_fragment_parameter_data:
17b3612022fe53 Josef Bacik 2023-11-22 594 btrfs_set_opt(ctx->mount_opt, FRAGMENT_DATA);
17b3612022fe53 Josef Bacik 2023-11-22 595 break;
17b3612022fe53 Josef Bacik 2023-11-22 596 default:
17b3612022fe53 Josef Bacik 2023-11-22 597 btrfs_info(NULL, "unrecognized fragment option '%s'",
17b3612022fe53 Josef Bacik 2023-11-22 598 param->key);
17b3612022fe53 Josef Bacik 2023-11-22 599 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 600 }
17b3612022fe53 Josef Bacik 2023-11-22 601 break;
17b3612022fe53 Josef Bacik 2023-11-22 602 #endif
17b3612022fe53 Josef Bacik 2023-11-22 603 #ifdef CONFIG_BTRFS_FS_REF_VERIFY
17b3612022fe53 Josef Bacik 2023-11-22 604 case Opt_ref_verify:
17b3612022fe53 Josef Bacik 2023-11-22 605 btrfs_set_opt(ctx->mount_opt, REF_VERIFY);
17b3612022fe53 Josef Bacik 2023-11-22 606 break;
17b3612022fe53 Josef Bacik 2023-11-22 607 #endif
17b3612022fe53 Josef Bacik 2023-11-22 608 default:
17b3612022fe53 Josef Bacik 2023-11-22 609 btrfs_err(NULL, "unrecognized mount option '%s'", param->key);
17b3612022fe53 Josef Bacik 2023-11-22 610 return -EINVAL;
17b3612022fe53 Josef Bacik 2023-11-22 611 }
17b3612022fe53 Josef Bacik 2023-11-22 612
17b3612022fe53 Josef Bacik 2023-11-22 613 return 0;
17b3612022fe53 Josef Bacik 2023-11-22 614 }
17b3612022fe53 Josef Bacik 2023-11-22 615
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2023-12-26 1:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-26 1:24 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-12-23 9:58 [PATCH 0/3] kstrtox: introduce memparse_safe() Qu Wenruo
2023-12-23 9:58 ` [PATCH 3/3] btrfs: migrate to the newer memparse_safe() helper Qu Wenruo
2023-12-26 4:53 ` kernel test robot
2023-12-26 6:06 ` kernel test robot
2023-12-27 6:27 ` David Disseldorp
2023-12-27 8:26 ` Qu Wenruo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202312260953.igCSOI51-lkp@intel.com \
--to=lkp@intel.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.