tree: https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git wip-test-dummy-encryption head: 3401801b9e29c95126ac1b3fb324d25f540048a8 commit: 0f065e5bfd243dfbc49e296285a07153e30c997d [3/4] fscrypt: support test_dummy_encryption=v2 config: h8300-randconfig-r024-20200512 (attached as .config) compiler: h8300-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 0f065e5bfd243dfbc49e296285a07153e30c997d # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=h8300 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>): fs/f2fs/super.c: In function 'parse_options': >> fs/f2fs/super.c:822:4: error: 'ret' undeclared (first use in this function); did you mean 'net'? 822 | ret = f2fs_set_test_dummy_encryption(sb, p, &args[0], | ^~~ | net fs/f2fs/super.c:822:4: note: each undeclared identifier is reported only once for each function it appears in # https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git/commit/?id=0f065e5bfd243dfbc49e296285a07153e30c997d git remote add ebiggers https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git git remote update ebiggers git checkout 0f065e5bfd243dfbc49e296285a07153e30c997d vim +822 fs/f2fs/super.c 696c018c7718f5 Namjae Jeon 2013-06-16 450 696c018c7718f5 Namjae Jeon 2013-06-16 451 if (!options) 696c018c7718f5 Namjae Jeon 2013-06-16 452 return 0; 696c018c7718f5 Namjae Jeon 2013-06-16 453 696c018c7718f5 Namjae Jeon 2013-06-16 454 while ((p = strsep(&options, ",")) != NULL) { 696c018c7718f5 Namjae Jeon 2013-06-16 455 int token; 696c018c7718f5 Namjae Jeon 2013-06-16 456 if (!*p) 696c018c7718f5 Namjae Jeon 2013-06-16 457 continue; 696c018c7718f5 Namjae Jeon 2013-06-16 458 /* 696c018c7718f5 Namjae Jeon 2013-06-16 459 * Initialize args struct so we know whether arg was 696c018c7718f5 Namjae Jeon 2013-06-16 460 * found; some options take optional arguments. 696c018c7718f5 Namjae Jeon 2013-06-16 461 */ 696c018c7718f5 Namjae Jeon 2013-06-16 462 args[0].to = args[0].from = NULL; 696c018c7718f5 Namjae Jeon 2013-06-16 463 token = match_token(p, f2fs_tokens, args); 696c018c7718f5 Namjae Jeon 2013-06-16 464 696c018c7718f5 Namjae Jeon 2013-06-16 465 switch (token) { 696c018c7718f5 Namjae Jeon 2013-06-16 466 case Opt_gc_background: 696c018c7718f5 Namjae Jeon 2013-06-16 467 name = match_strdup(&args[0]); 696c018c7718f5 Namjae Jeon 2013-06-16 468 696c018c7718f5 Namjae Jeon 2013-06-16 469 if (!name) 696c018c7718f5 Namjae Jeon 2013-06-16 470 return -ENOMEM; 6aefd93b01379b Jaegeuk Kim 2015-10-05 471 if (strlen(name) == 2 && !strncmp(name, "on", 2)) { bbbc34fd666254 Chao Yu 2020-02-14 472 F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_ON; 6aefd93b01379b Jaegeuk Kim 2015-10-05 473 } else if (strlen(name) == 3 && !strncmp(name, "off", 3)) { bbbc34fd666254 Chao Yu 2020-02-14 474 F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_OFF; 6aefd93b01379b Jaegeuk Kim 2015-10-05 475 } else if (strlen(name) == 4 && !strncmp(name, "sync", 4)) { bbbc34fd666254 Chao Yu 2020-02-14 476 F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_SYNC; 6aefd93b01379b Jaegeuk Kim 2015-10-05 477 } else { 5222595d093ebe Jaegeuk Kim 2018-12-13 478 kvfree(name); 696c018c7718f5 Namjae Jeon 2013-06-16 479 return -EINVAL; 696c018c7718f5 Namjae Jeon 2013-06-16 480 } 5222595d093ebe Jaegeuk Kim 2018-12-13 481 kvfree(name); 696c018c7718f5 Namjae Jeon 2013-06-16 482 break; 696c018c7718f5 Namjae Jeon 2013-06-16 483 case Opt_disable_roll_forward: 696c018c7718f5 Namjae Jeon 2013-06-16 484 set_opt(sbi, DISABLE_ROLL_FORWARD); 696c018c7718f5 Namjae Jeon 2013-06-16 485 break; 2d834bf9ac8e40 Jaegeuk Kim 2015-01-23 486 case Opt_norecovery: 2d834bf9ac8e40 Jaegeuk Kim 2015-01-23 487 /* this option mounts f2fs with ro */ a9117eca1de6b7 Chao Yu 2020-02-14 488 set_opt(sbi, NORECOVERY); 2d834bf9ac8e40 Jaegeuk Kim 2015-01-23 489 if (!f2fs_readonly(sb)) 2d834bf9ac8e40 Jaegeuk Kim 2015-01-23 490 return -EINVAL; 2d834bf9ac8e40 Jaegeuk Kim 2015-01-23 491 break; 696c018c7718f5 Namjae Jeon 2013-06-16 492 case Opt_discard: 696c018c7718f5 Namjae Jeon 2013-06-16 493 set_opt(sbi, DISCARD); 696c018c7718f5 Namjae Jeon 2013-06-16 494 break; 64058be9c8e357 Chao Yu 2016-07-03 495 case Opt_nodiscard: 7beb01f74415c5 Chao Yu 2018-10-24 496 if (f2fs_sb_has_blkzoned(sbi)) { dcbb4c10e6d969 Joe Perches 2019-06-18 497 f2fs_warn(sbi, "discard is required for zoned block devices"); 96ba2decb4241a Damien Le Moal 2016-10-28 498 return -EINVAL; 96ba2decb4241a Damien Le Moal 2016-10-28 499 } 64058be9c8e357 Chao Yu 2016-07-03 500 clear_opt(sbi, DISCARD); 487df616dec332 Damien Le Moal 2016-10-28 501 break; 696c018c7718f5 Namjae Jeon 2013-06-16 502 case Opt_noheap: 696c018c7718f5 Namjae Jeon 2013-06-16 503 set_opt(sbi, NOHEAP); 696c018c7718f5 Namjae Jeon 2013-06-16 504 break; 7a20b8a61eff81 Jaegeuk Kim 2017-03-24 505 case Opt_heap: 7a20b8a61eff81 Jaegeuk Kim 2017-03-24 506 clear_opt(sbi, NOHEAP); 7a20b8a61eff81 Jaegeuk Kim 2017-03-24 507 break; 696c018c7718f5 Namjae Jeon 2013-06-16 508 #ifdef CONFIG_F2FS_FS_XATTR 4058c5117d6d8a Kelly Anderson 2013-10-07 509 case Opt_user_xattr: 4058c5117d6d8a Kelly Anderson 2013-10-07 510 set_opt(sbi, XATTR_USER); 4058c5117d6d8a Kelly Anderson 2013-10-07 511 break; 696c018c7718f5 Namjae Jeon 2013-06-16 512 case Opt_nouser_xattr: 696c018c7718f5 Namjae Jeon 2013-06-16 513 clear_opt(sbi, XATTR_USER); 696c018c7718f5 Namjae Jeon 2013-06-16 514 break; 444c580f7e9ad2 Jaegeuk Kim 2013-08-08 515 case Opt_inline_xattr: 444c580f7e9ad2 Jaegeuk Kim 2013-08-08 516 set_opt(sbi, INLINE_XATTR); 444c580f7e9ad2 Jaegeuk Kim 2013-08-08 517 break; 23cf7212a1cae2 Chao Yu 2017-02-15 518 case Opt_noinline_xattr: 23cf7212a1cae2 Chao Yu 2017-02-15 519 clear_opt(sbi, INLINE_XATTR); 23cf7212a1cae2 Chao Yu 2017-02-15 520 break; 6afc662e68b5f9 Chao Yu 2017-09-06 521 case Opt_inline_xattr_size: 6afc662e68b5f9 Chao Yu 2017-09-06 522 if (args->from && match_int(args, &arg)) 6afc662e68b5f9 Chao Yu 2017-09-06 523 return -EINVAL; 6afc662e68b5f9 Chao Yu 2017-09-06 524 set_opt(sbi, INLINE_XATTR_SIZE); 63189b785960c3 Chao Yu 2018-03-08 525 F2FS_OPTION(sbi).inline_xattr_size = arg; 6afc662e68b5f9 Chao Yu 2017-09-06 526 break; 696c018c7718f5 Namjae Jeon 2013-06-16 527 #else 4058c5117d6d8a Kelly Anderson 2013-10-07 528 case Opt_user_xattr: dcbb4c10e6d969 Joe Perches 2019-06-18 529 f2fs_info(sbi, "user_xattr options not supported"); 4058c5117d6d8a Kelly Anderson 2013-10-07 530 break; 696c018c7718f5 Namjae Jeon 2013-06-16 531 case Opt_nouser_xattr: dcbb4c10e6d969 Joe Perches 2019-06-18 532 f2fs_info(sbi, "nouser_xattr options not supported"); 696c018c7718f5 Namjae Jeon 2013-06-16 533 break; 444c580f7e9ad2 Jaegeuk Kim 2013-08-08 534 case Opt_inline_xattr: dcbb4c10e6d969 Joe Perches 2019-06-18 535 f2fs_info(sbi, "inline_xattr options not supported"); 444c580f7e9ad2 Jaegeuk Kim 2013-08-08 536 break; 23cf7212a1cae2 Chao Yu 2017-02-15 537 case Opt_noinline_xattr: dcbb4c10e6d969 Joe Perches 2019-06-18 538 f2fs_info(sbi, "noinline_xattr options not supported"); 23cf7212a1cae2 Chao Yu 2017-02-15 539 break; 696c018c7718f5 Namjae Jeon 2013-06-16 540 #endif 696c018c7718f5 Namjae Jeon 2013-06-16 541 #ifdef CONFIG_F2FS_FS_POSIX_ACL 4058c5117d6d8a Kelly Anderson 2013-10-07 542 case Opt_acl: 4058c5117d6d8a Kelly Anderson 2013-10-07 543 set_opt(sbi, POSIX_ACL); 4058c5117d6d8a Kelly Anderson 2013-10-07 544 break; 696c018c7718f5 Namjae Jeon 2013-06-16 545 case Opt_noacl: 696c018c7718f5 Namjae Jeon 2013-06-16 546 clear_opt(sbi, POSIX_ACL); 696c018c7718f5 Namjae Jeon 2013-06-16 547 break; 696c018c7718f5 Namjae Jeon 2013-06-16 548 #else 4058c5117d6d8a Kelly Anderson 2013-10-07 549 case Opt_acl: dcbb4c10e6d969 Joe Perches 2019-06-18 550 f2fs_info(sbi, "acl options not supported"); 4058c5117d6d8a Kelly Anderson 2013-10-07 551 break; 696c018c7718f5 Namjae Jeon 2013-06-16 552 case Opt_noacl: dcbb4c10e6d969 Joe Perches 2019-06-18 553 f2fs_info(sbi, "noacl options not supported"); 696c018c7718f5 Namjae Jeon 2013-06-16 554 break; 696c018c7718f5 Namjae Jeon 2013-06-16 555 #endif 696c018c7718f5 Namjae Jeon 2013-06-16 556 case Opt_active_logs: 696c018c7718f5 Namjae Jeon 2013-06-16 557 if (args->from && match_int(args, &arg)) 696c018c7718f5 Namjae Jeon 2013-06-16 558 return -EINVAL; 696c018c7718f5 Namjae Jeon 2013-06-16 559 if (arg != 2 && arg != 4 && arg != NR_CURSEG_TYPE) 696c018c7718f5 Namjae Jeon 2013-06-16 560 return -EINVAL; 63189b785960c3 Chao Yu 2018-03-08 561 F2FS_OPTION(sbi).active_logs = arg; 696c018c7718f5 Namjae Jeon 2013-06-16 562 break; 696c018c7718f5 Namjae Jeon 2013-06-16 563 case Opt_disable_ext_identify: 696c018c7718f5 Namjae Jeon 2013-06-16 564 set_opt(sbi, DISABLE_EXT_IDENTIFY); 696c018c7718f5 Namjae Jeon 2013-06-16 565 break; 8274de77b7072d Huajun Li 2013-11-10 566 case Opt_inline_data: 8274de77b7072d Huajun Li 2013-11-10 567 set_opt(sbi, INLINE_DATA); 8274de77b7072d Huajun Li 2013-11-10 568 break; 5efd3c6f1be9cf Chao Yu 2014-09-24 569 case Opt_inline_dentry: 5efd3c6f1be9cf Chao Yu 2014-09-24 570 set_opt(sbi, INLINE_DENTRY); 5efd3c6f1be9cf Chao Yu 2014-09-24 571 break; 97c1794a5dc160 Chao Yu 2016-05-09 572 case Opt_noinline_dentry: 97c1794a5dc160 Chao Yu 2016-05-09 573 clear_opt(sbi, INLINE_DENTRY); 97c1794a5dc160 Chao Yu 2016-05-09 574 break; 6b4afdd794783f Jaegeuk Kim 2014-04-02 575 case Opt_flush_merge: 6b4afdd794783f Jaegeuk Kim 2014-04-02 576 set_opt(sbi, FLUSH_MERGE); 6b4afdd794783f Jaegeuk Kim 2014-04-02 577 break; 69e9e4274450c7 Jaegeuk Kim 2016-05-20 578 case Opt_noflush_merge: 69e9e4274450c7 Jaegeuk Kim 2016-05-20 579 clear_opt(sbi, FLUSH_MERGE); 69e9e4274450c7 Jaegeuk Kim 2016-05-20 580 break; 0f7b2abd188089 Jaegeuk Kim 2014-07-23 581 case Opt_nobarrier: 0f7b2abd188089 Jaegeuk Kim 2014-07-23 582 set_opt(sbi, NOBARRIER); 0f7b2abd188089 Jaegeuk Kim 2014-07-23 583 break; d5053a34a9cc79 Jaegeuk Kim 2014-10-30 584 case Opt_fastboot: d5053a34a9cc79 Jaegeuk Kim 2014-10-30 585 set_opt(sbi, FASTBOOT); d5053a34a9cc79 Jaegeuk Kim 2014-10-30 586 break; 8967215954a509 Chao Yu 2015-02-05 587 case Opt_extent_cache: 8967215954a509 Chao Yu 2015-02-05 588 set_opt(sbi, EXTENT_CACHE); 8967215954a509 Chao Yu 2015-02-05 589 break; 7daaea256de42d Jaegeuk Kim 2015-06-25 590 case Opt_noextent_cache: 7daaea256de42d Jaegeuk Kim 2015-06-25 591 clear_opt(sbi, EXTENT_CACHE); 7daaea256de42d Jaegeuk Kim 2015-06-25 592 break; 75342797988a0f Wanpeng Li 2015-03-24 593 case Opt_noinline_data: 75342797988a0f Wanpeng Li 2015-03-24 594 clear_opt(sbi, INLINE_DATA); 75342797988a0f Wanpeng Li 2015-03-24 595 break; 343f40f0a70eb7 Chao Yu 2015-12-16 596 case Opt_data_flush: 343f40f0a70eb7 Chao Yu 2015-12-16 597 set_opt(sbi, DATA_FLUSH); 343f40f0a70eb7 Chao Yu 2015-12-16 598 break; 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 599 case Opt_reserve_root: 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 600 if (args->from && match_int(args, &arg)) 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 601 return -EINVAL; 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 602 if (test_opt(sbi, RESERVE_ROOT)) { dcbb4c10e6d969 Joe Perches 2019-06-18 603 f2fs_info(sbi, "Preserve previous reserve_root=%u", 63189b785960c3 Chao Yu 2018-03-08 604 F2FS_OPTION(sbi).root_reserved_blocks); 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 605 } else { 63189b785960c3 Chao Yu 2018-03-08 606 F2FS_OPTION(sbi).root_reserved_blocks = arg; 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 607 set_opt(sbi, RESERVE_ROOT); 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 608 } 7e65be49ed94f8 Jaegeuk Kim 2017-12-27 609 break; 7c2e59632b846a Jaegeuk Kim 2018-01-04 610 case Opt_resuid: 7c2e59632b846a Jaegeuk Kim 2018-01-04 611 if (args->from && match_int(args, &arg)) 7c2e59632b846a Jaegeuk Kim 2018-01-04 612 return -EINVAL; 7c2e59632b846a Jaegeuk Kim 2018-01-04 613 uid = make_kuid(current_user_ns(), arg); 7c2e59632b846a Jaegeuk Kim 2018-01-04 614 if (!uid_valid(uid)) { dcbb4c10e6d969 Joe Perches 2019-06-18 615 f2fs_err(sbi, "Invalid uid value %d", arg); 7c2e59632b846a Jaegeuk Kim 2018-01-04 616 return -EINVAL; 7c2e59632b846a Jaegeuk Kim 2018-01-04 617 } 63189b785960c3 Chao Yu 2018-03-08 618 F2FS_OPTION(sbi).s_resuid = uid; 7c2e59632b846a Jaegeuk Kim 2018-01-04 619 break; 7c2e59632b846a Jaegeuk Kim 2018-01-04 620 case Opt_resgid: 7c2e59632b846a Jaegeuk Kim 2018-01-04 621 if (args->from && match_int(args, &arg)) 7c2e59632b846a Jaegeuk Kim 2018-01-04 622 return -EINVAL; 7c2e59632b846a Jaegeuk Kim 2018-01-04 623 gid = make_kgid(current_user_ns(), arg); 7c2e59632b846a Jaegeuk Kim 2018-01-04 624 if (!gid_valid(gid)) { dcbb4c10e6d969 Joe Perches 2019-06-18 625 f2fs_err(sbi, "Invalid gid value %d", arg); 7c2e59632b846a Jaegeuk Kim 2018-01-04 626 return -EINVAL; 7c2e59632b846a Jaegeuk Kim 2018-01-04 627 } 63189b785960c3 Chao Yu 2018-03-08 628 F2FS_OPTION(sbi).s_resgid = gid; 7c2e59632b846a Jaegeuk Kim 2018-01-04 629 break; 36abef4e796d38 Jaegeuk Kim 2016-06-03 630 case Opt_mode: 36abef4e796d38 Jaegeuk Kim 2016-06-03 631 name = match_strdup(&args[0]); 36abef4e796d38 Jaegeuk Kim 2016-06-03 632 36abef4e796d38 Jaegeuk Kim 2016-06-03 633 if (!name) 36abef4e796d38 Jaegeuk Kim 2016-06-03 634 return -ENOMEM; 36abef4e796d38 Jaegeuk Kim 2016-06-03 635 if (strlen(name) == 8 && 36abef4e796d38 Jaegeuk Kim 2016-06-03 636 !strncmp(name, "adaptive", 8)) { 7beb01f74415c5 Chao Yu 2018-10-24 637 if (f2fs_sb_has_blkzoned(sbi)) { dcbb4c10e6d969 Joe Perches 2019-06-18 638 f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature"); 5222595d093ebe Jaegeuk Kim 2018-12-13 639 kvfree(name); 3adc57e97792e4 Damien Le Moal 2016-10-28 640 return -EINVAL; 3adc57e97792e4 Damien Le Moal 2016-10-28 641 } b0332a0f957ca8 Chao Yu 2020-02-14 642 F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE; 36abef4e796d38 Jaegeuk Kim 2016-06-03 643 } else if (strlen(name) == 3 && 36abef4e796d38 Jaegeuk Kim 2016-06-03 644 !strncmp(name, "lfs", 3)) { b0332a0f957ca8 Chao Yu 2020-02-14 645 F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS; 36abef4e796d38 Jaegeuk Kim 2016-06-03 646 } else { 5222595d093ebe Jaegeuk Kim 2018-12-13 647 kvfree(name); 36abef4e796d38 Jaegeuk Kim 2016-06-03 648 return -EINVAL; 36abef4e796d38 Jaegeuk Kim 2016-06-03 649 } 5222595d093ebe Jaegeuk Kim 2018-12-13 650 kvfree(name); 36abef4e796d38 Jaegeuk Kim 2016-06-03 651 break; ec91538dccd443 Jaegeuk Kim 2016-12-21 652 case Opt_io_size_bits: ec91538dccd443 Jaegeuk Kim 2016-12-21 653 if (args->from && match_int(args, &arg)) ec91538dccd443 Jaegeuk Kim 2016-12-21 654 return -EINVAL; 6d52e135c8a8b2 Chao Yu 2019-02-15 655 if (arg <= 0 || arg > __ilog2_u32(BIO_MAX_PAGES)) { dcbb4c10e6d969 Joe Perches 2019-06-18 656 f2fs_warn(sbi, "Not support %d, larger than %d", ec91538dccd443 Jaegeuk Kim 2016-12-21 657 1 << arg, BIO_MAX_PAGES); ec91538dccd443 Jaegeuk Kim 2016-12-21 658 return -EINVAL; ec91538dccd443 Jaegeuk Kim 2016-12-21 659 } 63189b785960c3 Chao Yu 2018-03-08 660 F2FS_OPTION(sbi).write_io_size_bits = arg; ec91538dccd443 Jaegeuk Kim 2016-12-21 661 break; 4cb037ec3f754f Chengguang Xu 2018-09-12 662 #ifdef CONFIG_F2FS_FAULT_INJECTION 73faec4d99358b Jaegeuk Kim 2016-04-29 663 case Opt_fault_injection: 73faec4d99358b Jaegeuk Kim 2016-04-29 664 if (args->from && match_int(args, &arg)) 73faec4d99358b Jaegeuk Kim 2016-04-29 665 return -EINVAL; d494500a704342 Chao Yu 2018-08-08 666 f2fs_build_fault_attr(sbi, arg, F2FS_ALL_FAULT_TYPE); d494500a704342 Chao Yu 2018-08-08 667 set_opt(sbi, FAULT_INJECTION); d494500a704342 Chao Yu 2018-08-08 668 break; 4cb037ec3f754f Chengguang Xu 2018-09-12 669 d494500a704342 Chao Yu 2018-08-08 670 case Opt_fault_type: d494500a704342 Chao Yu 2018-08-08 671 if (args->from && match_int(args, &arg)) d494500a704342 Chao Yu 2018-08-08 672 return -EINVAL; d494500a704342 Chao Yu 2018-08-08 673 f2fs_build_fault_attr(sbi, 0, arg); 0cc0dec2b6f9bf Kaixu Xia 2017-01-27 674 set_opt(sbi, FAULT_INJECTION); 4cb037ec3f754f Chengguang Xu 2018-09-12 675 break; 73faec4d99358b Jaegeuk Kim 2016-04-29 676 #else 4cb037ec3f754f Chengguang Xu 2018-09-12 677 case Opt_fault_injection: dcbb4c10e6d969 Joe Perches 2019-06-18 678 f2fs_info(sbi, "fault_injection options not supported"); 73faec4d99358b Jaegeuk Kim 2016-04-29 679 break; 4cb037ec3f754f Chengguang Xu 2018-09-12 680 4cb037ec3f754f Chengguang Xu 2018-09-12 681 case Opt_fault_type: dcbb4c10e6d969 Joe Perches 2019-06-18 682 f2fs_info(sbi, "fault_type options not supported"); 4cb037ec3f754f Chengguang Xu 2018-09-12 683 break; 4cb037ec3f754f Chengguang Xu 2018-09-12 684 #endif 6d94c74ab85fe7 Jaegeuk Kim 2016-05-20 685 case Opt_lazytime: 1751e8a6cb935e Linus Torvalds 2017-11-27 686 sb->s_flags |= SB_LAZYTIME; 6d94c74ab85fe7 Jaegeuk Kim 2016-05-20 687 break; 6d94c74ab85fe7 Jaegeuk Kim 2016-05-20 688 case Opt_nolazytime: 1751e8a6cb935e Linus Torvalds 2017-11-27 689 sb->s_flags &= ~SB_LAZYTIME; 6d94c74ab85fe7 Jaegeuk Kim 2016-05-20 690 break; 0abd675e97e60d Chao Yu 2017-07-09 691 #ifdef CONFIG_QUOTA 4b2414d04e9912 Chao Yu 2017-08-08 692 case Opt_quota: 0abd675e97e60d Chao Yu 2017-07-09 693 case Opt_usrquota: 0abd675e97e60d Chao Yu 2017-07-09 694 set_opt(sbi, USRQUOTA); 0abd675e97e60d Chao Yu 2017-07-09 695 break; 0abd675e97e60d Chao Yu 2017-07-09 696 case Opt_grpquota: 0abd675e97e60d Chao Yu 2017-07-09 697 set_opt(sbi, GRPQUOTA); 0abd675e97e60d Chao Yu 2017-07-09 698 break; 5c57132eaf5265 Chao Yu 2017-07-26 699 case Opt_prjquota: 5c57132eaf5265 Chao Yu 2017-07-26 700 set_opt(sbi, PRJQUOTA); 5c57132eaf5265 Chao Yu 2017-07-26 701 break; 4b2414d04e9912 Chao Yu 2017-08-08 702 case Opt_usrjquota: 4b2414d04e9912 Chao Yu 2017-08-08 703 ret = f2fs_set_qf_name(sb, USRQUOTA, &args[0]); 4b2414d04e9912 Chao Yu 2017-08-08 704 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 705 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 706 break; 4b2414d04e9912 Chao Yu 2017-08-08 707 case Opt_grpjquota: 4b2414d04e9912 Chao Yu 2017-08-08 708 ret = f2fs_set_qf_name(sb, GRPQUOTA, &args[0]); 4b2414d04e9912 Chao Yu 2017-08-08 709 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 710 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 711 break; 4b2414d04e9912 Chao Yu 2017-08-08 712 case Opt_prjjquota: 4b2414d04e9912 Chao Yu 2017-08-08 713 ret = f2fs_set_qf_name(sb, PRJQUOTA, &args[0]); 4b2414d04e9912 Chao Yu 2017-08-08 714 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 715 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 716 break; 4b2414d04e9912 Chao Yu 2017-08-08 717 case Opt_offusrjquota: 4b2414d04e9912 Chao Yu 2017-08-08 718 ret = f2fs_clear_qf_name(sb, USRQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 719 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 720 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 721 break; 4b2414d04e9912 Chao Yu 2017-08-08 722 case Opt_offgrpjquota: 4b2414d04e9912 Chao Yu 2017-08-08 723 ret = f2fs_clear_qf_name(sb, GRPQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 724 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 725 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 726 break; 4b2414d04e9912 Chao Yu 2017-08-08 727 case Opt_offprjjquota: 4b2414d04e9912 Chao Yu 2017-08-08 728 ret = f2fs_clear_qf_name(sb, PRJQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 729 if (ret) 4b2414d04e9912 Chao Yu 2017-08-08 730 return ret; 4b2414d04e9912 Chao Yu 2017-08-08 731 break; 4b2414d04e9912 Chao Yu 2017-08-08 732 case Opt_jqfmt_vfsold: 63189b785960c3 Chao Yu 2018-03-08 733 F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_OLD; 4b2414d04e9912 Chao Yu 2017-08-08 734 break; 4b2414d04e9912 Chao Yu 2017-08-08 735 case Opt_jqfmt_vfsv0: 63189b785960c3 Chao Yu 2018-03-08 736 F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_V0; 4b2414d04e9912 Chao Yu 2017-08-08 737 break; 4b2414d04e9912 Chao Yu 2017-08-08 738 case Opt_jqfmt_vfsv1: 63189b785960c3 Chao Yu 2018-03-08 739 F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_V1; 4b2414d04e9912 Chao Yu 2017-08-08 740 break; 4b2414d04e9912 Chao Yu 2017-08-08 741 case Opt_noquota: 4b2414d04e9912 Chao Yu 2017-08-08 742 clear_opt(sbi, QUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 743 clear_opt(sbi, USRQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 744 clear_opt(sbi, GRPQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 745 clear_opt(sbi, PRJQUOTA); 4b2414d04e9912 Chao Yu 2017-08-08 746 break; 0abd675e97e60d Chao Yu 2017-07-09 747 #else 4b2414d04e9912 Chao Yu 2017-08-08 748 case Opt_quota: 0abd675e97e60d Chao Yu 2017-07-09 749 case Opt_usrquota: 0abd675e97e60d Chao Yu 2017-07-09 750 case Opt_grpquota: 5c57132eaf5265 Chao Yu 2017-07-26 751 case Opt_prjquota: 4b2414d04e9912 Chao Yu 2017-08-08 752 case Opt_usrjquota: 4b2414d04e9912 Chao Yu 2017-08-08 753 case Opt_grpjquota: 4b2414d04e9912 Chao Yu 2017-08-08 754 case Opt_prjjquota: 4b2414d04e9912 Chao Yu 2017-08-08 755 case Opt_offusrjquota: 4b2414d04e9912 Chao Yu 2017-08-08 756 case Opt_offgrpjquota: 4b2414d04e9912 Chao Yu 2017-08-08 757 case Opt_offprjjquota: 4b2414d04e9912 Chao Yu 2017-08-08 758 case Opt_jqfmt_vfsold: 4b2414d04e9912 Chao Yu 2017-08-08 759 case Opt_jqfmt_vfsv0: 4b2414d04e9912 Chao Yu 2017-08-08 760 case Opt_jqfmt_vfsv1: 4b2414d04e9912 Chao Yu 2017-08-08 761 case Opt_noquota: dcbb4c10e6d969 Joe Perches 2019-06-18 762 f2fs_info(sbi, "quota operations not supported"); 0abd675e97e60d Chao Yu 2017-07-09 763 break; 0abd675e97e60d Chao Yu 2017-07-09 764 #endif 0cdd31953967b2 Hyunchul Lee 2018-01-31 765 case Opt_whint: 0cdd31953967b2 Hyunchul Lee 2018-01-31 766 name = match_strdup(&args[0]); 0cdd31953967b2 Hyunchul Lee 2018-01-31 767 if (!name) 0cdd31953967b2 Hyunchul Lee 2018-01-31 768 return -ENOMEM; 0cdd31953967b2 Hyunchul Lee 2018-01-31 769 if (strlen(name) == 10 && 0cdd31953967b2 Hyunchul Lee 2018-01-31 770 !strncmp(name, "user-based", 10)) { 63189b785960c3 Chao Yu 2018-03-08 771 F2FS_OPTION(sbi).whint_mode = WHINT_MODE_USER; 0cdd31953967b2 Hyunchul Lee 2018-01-31 772 } else if (strlen(name) == 3 && 0cdd31953967b2 Hyunchul Lee 2018-01-31 773 !strncmp(name, "off", 3)) { 63189b785960c3 Chao Yu 2018-03-08 774 F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF; f2e703f9a3caa9 Hyunchul Lee 2018-01-31 775 } else if (strlen(name) == 8 && f2e703f9a3caa9 Hyunchul Lee 2018-01-31 776 !strncmp(name, "fs-based", 8)) { 63189b785960c3 Chao Yu 2018-03-08 777 F2FS_OPTION(sbi).whint_mode = WHINT_MODE_FS; 0cdd31953967b2 Hyunchul Lee 2018-01-31 778 } else { 5222595d093ebe Jaegeuk Kim 2018-12-13 779 kvfree(name); 0cdd31953967b2 Hyunchul Lee 2018-01-31 780 return -EINVAL; 0cdd31953967b2 Hyunchul Lee 2018-01-31 781 } 5222595d093ebe Jaegeuk Kim 2018-12-13 782 kvfree(name); 0cdd31953967b2 Hyunchul Lee 2018-01-31 783 break; 079396270b0f1e Jaegeuk Kim 2018-02-18 784 case Opt_alloc: 079396270b0f1e Jaegeuk Kim 2018-02-18 785 name = match_strdup(&args[0]); 079396270b0f1e Jaegeuk Kim 2018-02-18 786 if (!name) 079396270b0f1e Jaegeuk Kim 2018-02-18 787 return -ENOMEM; 079396270b0f1e Jaegeuk Kim 2018-02-18 788 079396270b0f1e Jaegeuk Kim 2018-02-18 789 if (strlen(name) == 7 && 079396270b0f1e Jaegeuk Kim 2018-02-18 790 !strncmp(name, "default", 7)) { 63189b785960c3 Chao Yu 2018-03-08 791 F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_DEFAULT; 079396270b0f1e Jaegeuk Kim 2018-02-18 792 } else if (strlen(name) == 5 && 079396270b0f1e Jaegeuk Kim 2018-02-18 793 !strncmp(name, "reuse", 5)) { 63189b785960c3 Chao Yu 2018-03-08 794 F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_REUSE; 079396270b0f1e Jaegeuk Kim 2018-02-18 795 } else { 5222595d093ebe Jaegeuk Kim 2018-12-13 796 kvfree(name); 079396270b0f1e Jaegeuk Kim 2018-02-18 797 return -EINVAL; 079396270b0f1e Jaegeuk Kim 2018-02-18 798 } 5222595d093ebe Jaegeuk Kim 2018-12-13 799 kvfree(name); 079396270b0f1e Jaegeuk Kim 2018-02-18 800 break; 93cf93f17c8ef7 Junling Zheng 2018-03-07 801 case Opt_fsync: 93cf93f17c8ef7 Junling Zheng 2018-03-07 802 name = match_strdup(&args[0]); 93cf93f17c8ef7 Junling Zheng 2018-03-07 803 if (!name) 93cf93f17c8ef7 Junling Zheng 2018-03-07 804 return -ENOMEM; 93cf93f17c8ef7 Junling Zheng 2018-03-07 805 if (strlen(name) == 5 && 93cf93f17c8ef7 Junling Zheng 2018-03-07 806 !strncmp(name, "posix", 5)) { 63189b785960c3 Chao Yu 2018-03-08 807 F2FS_OPTION(sbi).fsync_mode = FSYNC_MODE_POSIX; 93cf93f17c8ef7 Junling Zheng 2018-03-07 808 } else if (strlen(name) == 6 && 93cf93f17c8ef7 Junling Zheng 2018-03-07 809 !strncmp(name, "strict", 6)) { 63189b785960c3 Chao Yu 2018-03-08 810 F2FS_OPTION(sbi).fsync_mode = FSYNC_MODE_STRICT; d6290814b018aa Jaegeuk Kim 2018-05-25 811 } else if (strlen(name) == 9 && d6290814b018aa Jaegeuk Kim 2018-05-25 812 !strncmp(name, "nobarrier", 9)) { d6290814b018aa Jaegeuk Kim 2018-05-25 813 F2FS_OPTION(sbi).fsync_mode = d6290814b018aa Jaegeuk Kim 2018-05-25 814 FSYNC_MODE_NOBARRIER; 93cf93f17c8ef7 Junling Zheng 2018-03-07 815 } else { 5222595d093ebe Jaegeuk Kim 2018-12-13 816 kvfree(name); 93cf93f17c8ef7 Junling Zheng 2018-03-07 817 return -EINVAL; 93cf93f17c8ef7 Junling Zheng 2018-03-07 818 } 5222595d093ebe Jaegeuk Kim 2018-12-13 819 kvfree(name); 93cf93f17c8ef7 Junling Zheng 2018-03-07 820 break; ff62af200b94e0 Sheng Yong 2018-03-15 821 case Opt_test_dummy_encryption: 0f065e5bfd243d Eric Biggers 2020-05-11 @822 ret = f2fs_set_test_dummy_encryption(sb, p, &args[0], 0f065e5bfd243d Eric Biggers 2020-05-11 823 is_remount); 0f065e5bfd243d Eric Biggers 2020-05-11 824 if (ret) 0f065e5bfd243d Eric Biggers 2020-05-11 825 return ret; ff62af200b94e0 Sheng Yong 2018-03-15 826 break; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 827 case Opt_checkpoint_disable_cap_perc: 4d3aed70902f29 Daniel Rosenberg 2019-05-29 828 if (args->from && match_int(args, &arg)) 4d3aed70902f29 Daniel Rosenberg 2019-05-29 829 return -EINVAL; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 830 if (arg < 0 || arg > 100) 4d3aed70902f29 Daniel Rosenberg 2019-05-29 831 return -EINVAL; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 832 if (arg == 100) 4d3aed70902f29 Daniel Rosenberg 2019-05-29 833 F2FS_OPTION(sbi).unusable_cap = 4d3aed70902f29 Daniel Rosenberg 2019-05-29 834 sbi->user_block_count; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 835 else 4d3aed70902f29 Daniel Rosenberg 2019-05-29 836 F2FS_OPTION(sbi).unusable_cap = 4d3aed70902f29 Daniel Rosenberg 2019-05-29 837 (sbi->user_block_count / 100) * arg; 4354994f097d06 Daniel Rosenberg 2018-08-20 838 set_opt(sbi, DISABLE_CHECKPOINT); 4d3aed70902f29 Daniel Rosenberg 2019-05-29 839 break; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 840 case Opt_checkpoint_disable_cap: 4d3aed70902f29 Daniel Rosenberg 2019-05-29 841 if (args->from && match_int(args, &arg)) 4354994f097d06 Daniel Rosenberg 2018-08-20 842 return -EINVAL; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 843 F2FS_OPTION(sbi).unusable_cap = arg; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 844 set_opt(sbi, DISABLE_CHECKPOINT); 4d3aed70902f29 Daniel Rosenberg 2019-05-29 845 break; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 846 case Opt_checkpoint_disable: 4d3aed70902f29 Daniel Rosenberg 2019-05-29 847 set_opt(sbi, DISABLE_CHECKPOINT); 4d3aed70902f29 Daniel Rosenberg 2019-05-29 848 break; 4d3aed70902f29 Daniel Rosenberg 2019-05-29 849 case Opt_checkpoint_enable: 4d3aed70902f29 Daniel Rosenberg 2019-05-29 850 clear_opt(sbi, DISABLE_CHECKPOINT); 4354994f097d06 Daniel Rosenberg 2018-08-20 851 break; 4c8ff7095bef64 Chao Yu 2019-11-01 852 case Opt_compress_algorithm: 4c8ff7095bef64 Chao Yu 2019-11-01 853 if (!f2fs_sb_has_compression(sbi)) { 4c8ff7095bef64 Chao Yu 2019-11-01 854 f2fs_err(sbi, "Compression feature if off"); 4c8ff7095bef64 Chao Yu 2019-11-01 855 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 856 } 4c8ff7095bef64 Chao Yu 2019-11-01 857 name = match_strdup(&args[0]); 4c8ff7095bef64 Chao Yu 2019-11-01 858 if (!name) 4c8ff7095bef64 Chao Yu 2019-11-01 859 return -ENOMEM; 4c8ff7095bef64 Chao Yu 2019-11-01 860 if (strlen(name) == 3 && !strcmp(name, "lzo")) { 4c8ff7095bef64 Chao Yu 2019-11-01 861 F2FS_OPTION(sbi).compress_algorithm = 4c8ff7095bef64 Chao Yu 2019-11-01 862 COMPRESS_LZO; 4c8ff7095bef64 Chao Yu 2019-11-01 863 } else if (strlen(name) == 3 && 4c8ff7095bef64 Chao Yu 2019-11-01 864 !strcmp(name, "lz4")) { 4c8ff7095bef64 Chao Yu 2019-11-01 865 F2FS_OPTION(sbi).compress_algorithm = 4c8ff7095bef64 Chao Yu 2019-11-01 866 COMPRESS_LZ4; 50cfa66f0de02e Chao Yu 2020-03-03 867 } else if (strlen(name) == 4 && 50cfa66f0de02e Chao Yu 2020-03-03 868 !strcmp(name, "zstd")) { 50cfa66f0de02e Chao Yu 2020-03-03 869 F2FS_OPTION(sbi).compress_algorithm = 50cfa66f0de02e Chao Yu 2020-03-03 870 COMPRESS_ZSTD; 4c8ff7095bef64 Chao Yu 2019-11-01 871 } else { 4c8ff7095bef64 Chao Yu 2019-11-01 872 kfree(name); 4c8ff7095bef64 Chao Yu 2019-11-01 873 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 874 } 4c8ff7095bef64 Chao Yu 2019-11-01 875 kfree(name); 4c8ff7095bef64 Chao Yu 2019-11-01 876 break; 4c8ff7095bef64 Chao Yu 2019-11-01 877 case Opt_compress_log_size: 4c8ff7095bef64 Chao Yu 2019-11-01 878 if (!f2fs_sb_has_compression(sbi)) { 4c8ff7095bef64 Chao Yu 2019-11-01 879 f2fs_err(sbi, "Compression feature is off"); 4c8ff7095bef64 Chao Yu 2019-11-01 880 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 881 } 4c8ff7095bef64 Chao Yu 2019-11-01 882 if (args->from && match_int(args, &arg)) 4c8ff7095bef64 Chao Yu 2019-11-01 883 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 884 if (arg < MIN_COMPRESS_LOG_SIZE || 4c8ff7095bef64 Chao Yu 2019-11-01 885 arg > MAX_COMPRESS_LOG_SIZE) { 4c8ff7095bef64 Chao Yu 2019-11-01 886 f2fs_err(sbi, 4c8ff7095bef64 Chao Yu 2019-11-01 887 "Compress cluster log size is out of range"); 4c8ff7095bef64 Chao Yu 2019-11-01 888 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 889 } 4c8ff7095bef64 Chao Yu 2019-11-01 890 F2FS_OPTION(sbi).compress_log_size = arg; 4c8ff7095bef64 Chao Yu 2019-11-01 891 break; 4c8ff7095bef64 Chao Yu 2019-11-01 892 case Opt_compress_extension: 4c8ff7095bef64 Chao Yu 2019-11-01 893 if (!f2fs_sb_has_compression(sbi)) { 4c8ff7095bef64 Chao Yu 2019-11-01 894 f2fs_err(sbi, "Compression feature is off"); 4c8ff7095bef64 Chao Yu 2019-11-01 895 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 896 } 4c8ff7095bef64 Chao Yu 2019-11-01 897 name = match_strdup(&args[0]); 4c8ff7095bef64 Chao Yu 2019-11-01 898 if (!name) 4c8ff7095bef64 Chao Yu 2019-11-01 899 return -ENOMEM; 4c8ff7095bef64 Chao Yu 2019-11-01 900 4c8ff7095bef64 Chao Yu 2019-11-01 901 ext = F2FS_OPTION(sbi).extensions; 4c8ff7095bef64 Chao Yu 2019-11-01 902 ext_cnt = F2FS_OPTION(sbi).compress_ext_cnt; 4c8ff7095bef64 Chao Yu 2019-11-01 903 4c8ff7095bef64 Chao Yu 2019-11-01 904 if (strlen(name) >= F2FS_EXTENSION_LEN || 4c8ff7095bef64 Chao Yu 2019-11-01 905 ext_cnt >= COMPRESS_EXT_NUM) { 4c8ff7095bef64 Chao Yu 2019-11-01 906 f2fs_err(sbi, 4c8ff7095bef64 Chao Yu 2019-11-01 907 "invalid extension length/number"); 4c8ff7095bef64 Chao Yu 2019-11-01 908 kfree(name); 4c8ff7095bef64 Chao Yu 2019-11-01 909 return -EINVAL; 4c8ff7095bef64 Chao Yu 2019-11-01 910 } 4c8ff7095bef64 Chao Yu 2019-11-01 911 4c8ff7095bef64 Chao Yu 2019-11-01 912 strcpy(ext[ext_cnt], name); 4c8ff7095bef64 Chao Yu 2019-11-01 913 F2FS_OPTION(sbi).compress_ext_cnt++; 4c8ff7095bef64 Chao Yu 2019-11-01 914 kfree(name); 4c8ff7095bef64 Chao Yu 2019-11-01 915 break; 696c018c7718f5 Namjae Jeon 2013-06-16 916 default: dcbb4c10e6d969 Joe Perches 2019-06-18 917 f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value", 696c018c7718f5 Namjae Jeon 2013-06-16 918 p); 696c018c7718f5 Namjae Jeon 2013-06-16 919 return -EINVAL; 696c018c7718f5 Namjae Jeon 2013-06-16 920 } 696c018c7718f5 Namjae Jeon 2013-06-16 921 } 4b2414d04e9912 Chao Yu 2017-08-08 922 #ifdef CONFIG_QUOTA 4b2414d04e9912 Chao Yu 2017-08-08 923 if (f2fs_check_quota_options(sbi)) 4b2414d04e9912 Chao Yu 2017-08-08 924 return -EINVAL; 00960c2cd8f169 Sheng Yong 2018-07-24 925 #else 7beb01f74415c5 Chao Yu 2018-10-24 926 if (f2fs_sb_has_quota_ino(sbi) && !f2fs_readonly(sbi->sb)) { dcbb4c10e6d969 Joe Perches 2019-06-18 927 f2fs_info(sbi, "Filesystem with quota feature cannot be mounted RDWR without CONFIG_QUOTA"); 00960c2cd8f169 Sheng Yong 2018-07-24 928 return -EINVAL; 00960c2cd8f169 Sheng Yong 2018-07-24 929 } 7beb01f74415c5 Chao Yu 2018-10-24 930 if (f2fs_sb_has_project_quota(sbi) && !f2fs_readonly(sbi->sb)) { dcbb4c10e6d969 Joe Perches 2019-06-18 931 f2fs_err(sbi, "Filesystem with project quota feature cannot be mounted RDWR without CONFIG_QUOTA"); 4ddc1b28aac57a Chao Yu 2018-07-26 932 return -EINVAL; 4ddc1b28aac57a Chao Yu 2018-07-26 933 } 4b2414d04e9912 Chao Yu 2017-08-08 934 #endif 5aba54302a46fd Daniel Rosenberg 2019-07-23 935 #ifndef CONFIG_UNICODE 5aba54302a46fd Daniel Rosenberg 2019-07-23 936 if (f2fs_sb_has_casefold(sbi)) { 5aba54302a46fd Daniel Rosenberg 2019-07-23 937 f2fs_err(sbi, 5aba54302a46fd Daniel Rosenberg 2019-07-23 938 "Filesystem with casefold feature cannot be mounted without CONFIG_UNICODE"); 5aba54302a46fd Daniel Rosenberg 2019-07-23 939 return -EINVAL; 5aba54302a46fd Daniel Rosenberg 2019-07-23 940 } 5aba54302a46fd Daniel Rosenberg 2019-07-23 941 #endif ec91538dccd443 Jaegeuk Kim 2016-12-21 942 b0332a0f957ca8 Chao Yu 2020-02-14 943 if (F2FS_IO_SIZE_BITS(sbi) && !f2fs_lfs_mode(sbi)) { dcbb4c10e6d969 Joe Perches 2019-06-18 944 f2fs_err(sbi, "Should set mode=lfs with %uKB-sized IO", ec91538dccd443 Jaegeuk Kim 2016-12-21 945 F2FS_IO_SIZE_KB(sbi)); ec91538dccd443 Jaegeuk Kim 2016-12-21 946 return -EINVAL; ec91538dccd443 Jaegeuk Kim 2016-12-21 947 } 6afc662e68b5f9 Chao Yu 2017-09-06 948 6afc662e68b5f9 Chao Yu 2017-09-06 949 if (test_opt(sbi, INLINE_XATTR_SIZE)) { 70db5b04cbe19e Jaegeuk Kim 2019-03-12 950 int min_size, max_size; 70db5b04cbe19e Jaegeuk Kim 2019-03-12 951 7beb01f74415c5 Chao Yu 2018-10-24 952 if (!f2fs_sb_has_extra_attr(sbi) || 7beb01f74415c5 Chao Yu 2018-10-24 953 !f2fs_sb_has_flexible_inline_xattr(sbi)) { dcbb4c10e6d969 Joe Perches 2019-06-18 954 f2fs_err(sbi, "extra_attr or flexible_inline_xattr feature is off"); 4d817ae099883b Chao Yu 2018-01-27 955 return -EINVAL; 4d817ae099883b Chao Yu 2018-01-27 956 } 6afc662e68b5f9 Chao Yu 2017-09-06 957 if (!test_opt(sbi, INLINE_XATTR)) { dcbb4c10e6d969 Joe Perches 2019-06-18 958 f2fs_err(sbi, "inline_xattr_size option should be set with inline_xattr option"); 6afc662e68b5f9 Chao Yu 2017-09-06 959 return -EINVAL; 6afc662e68b5f9 Chao Yu 2017-09-06 960 } 70db5b04cbe19e Jaegeuk Kim 2019-03-12 961 70db5b04cbe19e Jaegeuk Kim 2019-03-12 962 min_size = sizeof(struct f2fs_xattr_header) / sizeof(__le32); dd6c89b5f2b93c Chao Yu 2019-03-04 963 max_size = MAX_INLINE_XATTR_SIZE; 70db5b04cbe19e Jaegeuk Kim 2019-03-12 964 70db5b04cbe19e Jaegeuk Kim 2019-03-12 965 if (F2FS_OPTION(sbi).inline_xattr_size < min_size || 70db5b04cbe19e Jaegeuk Kim 2019-03-12 966 F2FS_OPTION(sbi).inline_xattr_size > max_size) { dcbb4c10e6d969 Joe Perches 2019-06-18 967 f2fs_err(sbi, "inline xattr size is out of range: %d ~ %d", 70db5b04cbe19e Jaegeuk Kim 2019-03-12 968 min_size, max_size); 6afc662e68b5f9 Chao Yu 2017-09-06 969 return -EINVAL; 6afc662e68b5f9 Chao Yu 2017-09-06 970 } 6afc662e68b5f9 Chao Yu 2017-09-06 971 } 0cdd31953967b2 Hyunchul Lee 2018-01-31 972 b0332a0f957ca8 Chao Yu 2020-02-14 973 if (test_opt(sbi, DISABLE_CHECKPOINT) && f2fs_lfs_mode(sbi)) { dcbb4c10e6d969 Joe Perches 2019-06-18 974 f2fs_err(sbi, "LFS not compatible with checkpoint=disable\n"); 4354994f097d06 Daniel Rosenberg 2018-08-20 975 return -EINVAL; 4354994f097d06 Daniel Rosenberg 2018-08-20 976 } 4354994f097d06 Daniel Rosenberg 2018-08-20 977 0cdd31953967b2 Hyunchul Lee 2018-01-31 978 /* Not pass down write hints if the number of active logs is lesser 0cdd31953967b2 Hyunchul Lee 2018-01-31 979 * than NR_CURSEG_TYPE. 0cdd31953967b2 Hyunchul Lee 2018-01-31 980 */ 63189b785960c3 Chao Yu 2018-03-08 981 if (F2FS_OPTION(sbi).active_logs != NR_CURSEG_TYPE) 63189b785960c3 Chao Yu 2018-03-08 982 F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF; 696c018c7718f5 Namjae Jeon 2013-06-16 983 return 0; 696c018c7718f5 Namjae Jeon 2013-06-16 984 } 696c018c7718f5 Namjae Jeon 2013-06-16 985 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org _______________________________________________ kbuild mailing list -- kbuild(a)lists.01.org To unsubscribe send an email to kbuild-leave(a)lists.01.org