Skip to content
Permalink
odd_inode_flags

Commits on Jun 7, 2018

  1. btrfs-progs: fsck-tests: add test case to check symlinks with bad flags

    There are two bad symlinks in the test case.  One is with immutable
    attribute.  Another one is with append attribute.
    
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue
    Su Yue committed Jun 7, 2018
  2. btrfs-progs: check: lowmem: check symlinks with append/immutable flags

    Define new error bit INODE_FLAGS_ERROR to represents invalid inode
    flags error.
    
    Symlinks should never have append/immutable flags set.
    While checking inodes, if found a symlink with append/immutable
    flags, report and record the inode flags error.
    
    This is for lowmem mode.
    
    Issue: kdave#133
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue
    Su Yue committed Jun 7, 2018
  3. btrfs-progs: check: check symlinks with append/immutable flags

    Define new macro I_ERR_ODD_INODE_FLAGS to represents odd inode flags.
    
    Symlinks should never have append/immutable flags.
    While processing inodes, if found a symlink with append/immutable
    flags, mark the inode record with I_ERR_ODD_INODE_FLAGS.
    
    This is for original mode.
    
    Issue: kdave#133
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue
    Su Yue committed Jun 7, 2018

Commits on Jun 5, 2018

  1. btrfs-progs: Remove fs_info argument from write_ctree_super

    This function already takes a transaction handle which has a reference
    to the fs_info, so use that to obtain it.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  2. btrfs-progs: Remove root argument from write_one_cache_group

    It's not needed since we can acquire a reference to the fs_info from
    the transaction handle already passed.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  3. btrfs-progs: Remove root argument from btrfs_set_block_flags

    It's used only to get a reference to fs_info, which can be obtained from
    the transaction handle.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  4. btrfs-progs: Change btrfs_root to btrfs_fs_info argument in btrfs_loo…

    …kup_extent_info
    
    That function really wants an fs_info and not a root. Accidentally,
    this also makes the kernel/user space signatures to be coherent.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  5. btrfs-progs: check: Remove unused root argument from btrfs_extent_pos…

    …t_op
    
    This is no longer used by the callees of that function so remove it.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  6. btrfs-progs: Remove unused argument from clean_tree_block

    This function actually uses only the extent_buffer arg but takes 3
    arguments. Furthermore, it's current interface doesn't even mirror
    the kernel counterpart. Just remove the extra arguments.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  7. btrfs-progs: check: Make update_pinned_extents take btrfs_fs_info

    This function needs btrfs_fs_info and not a root. So make it directly
    take btrfs_fs_info,
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  8. btrfs-progs: check: Remove root argument from finish_current_insert

    Just reference it directly from trans->fs_info.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  9. btrfs-progs: check: Remove root parameter from del_pending_extents

    This function always operates on the extent root which can be
    referenced from trans->fs_info. Do that to simplify function's
    signature.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  10. btrfs-progs: check: Remove root parameter from btrfs_fix_block_accoun…

    …ting
    
    It's always set to extent_root and the function already takes a
    transaction handle where fs_info could be referenced and in turn
    the extent_tree.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  11. btrfs-progs: check: Remove root argument from delete_extent_records

    This function is always passed the extent_root as "root" parameter. In
    turn it uses the root parameter to mostly access fs_info and performs
    only a single call to btrfs_update_block_group where it passses the
    passed root. This is all redundant since fs_info can be referenced
    from the transaction handle and in turn extent_root can be referenced
    from the fs_info. So do that to simplify the function's signature.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed Jun 5, 2018
  12. btrfs-progs: tests: test mkfs.btrfs fails on small backing size thin …

    …provision device
    
    This tests is most similar to xfstests generic/405.
    It calls device mapper to create a thin provision device with small
    backing size and big virtual size. mkfs.btrfs should fail on such
    devices.
    
    This test should pass after commit e805b14
    ("btrfs-progs: mkfs: return nozero value on thin provisioned device").
    
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue authored and kdave committed Jun 5, 2018

Commits on May 9, 2018

  1. btrfs-progs: do not merge tree block refs have different root_id

    For an extent item which contains many tree block backrefs, like
    
    In 020-extent-ref-cases/keyed_block_ref.img
    
    item 10 key (29470720 METADATA_ITEM 0) itemoff 3450 itemsize 222
                    refs 23 gen 10 flags TREE_BLOCK
                    tree block skinny level 0
                    tree block backref root 278
                    tree block backref root 277
                    tree block backref root 276
                    tree block backref root 275
                    tree block backref root 274
                    tree block backref root 273
                    tree block backref root 272
                    tree block backref root 271
                    tree block backref root 270
                    tree block backref root 269
                    tree block backref root 268
                    tree block backref root 267
                    tree block backref root 266
                    tree block backref root 265
                    tree block backref root 264
                    tree block backref root 263
                    tree block backref root 262
                    tree block backref root 261
                    tree block backref root 260
                    tree block backref root 259
                    tree block backref root 258
                    tree block backref root 257
    
    In find_parent_nodes(), these refs's parents are 0, then __merge_refs
    will merge refs to one ref. It causes only one root to be returned.
    
    So, if both parents are 0, do not merge refs.
    
    Lowmem check calls find_parent_nodes frequently to decide whether
    check an extent buffer or not. The bug affects bytes accounting.
    
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue authored and kdave committed May 9, 2018
  2. btrfs-progs: remove useless branch in __merge_refs

    After call of ref_for_same_block, ref1->parent must equals to
    ref2->parent, the block of exchange is never reached.
    
    So remove the block of exchange.
    
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue authored and kdave committed May 9, 2018
  3. btrfs-progs: remove comments about delayed ref in backref.c

    There is no delayed ref in btrfs-progs, so remove related comments.
    
    Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Su Yue authored and kdave committed May 9, 2018
  4. btrfs-progs: Allow tree to be printed without an fs_info

    For btrfs_print_tree() and btrfs_print_leaf(), the usage of fs_info is
    mainly for nodesize and sectorsize.
    
    However for nodesize, we can get it from @Eb->len without the need for
    fs_info at all.
    
    For nodesize, introduce new helper BTRFS_NODEPTR_PER_EXTENT_BUFFER() to
    get nodesize from @eb directly.
    And with the help of previous modified btrfs_leaf_free_space(),
    btrfs_print_tree() can live without fs_info at all.
    
    For btrfs_print_leaf(), we modify print_extent_csum() to accept NULL
    fs_info by skipping csum length calculation.
    
    With all these modification, btrfs_print_tree/leaf() can be called
    without accessing @fs_info at all, and make it more flexible to handle
    binary tree block dump, or inside gdb.
    
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    adam900710 authored and kdave committed May 9, 2018
  5. btrfs-progs: Remove fs_info parameter from btrfs_leaf_free_space()

    For btrfs_leaf_free_space(), to get leaf data size, we have two way to
    get it:
    
    1) leaf->fs_info->nodesize
    2) leaf->len
    
    Anyway, we could get rid of @fs_info parameter for
    btrfs_leaf_free_space().
    And here we choose method 2), as it provides extra benefit to get leaf
    free space without initializing a real fs_info.
    
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    adam900710 authored and kdave committed May 9, 2018
  6. btrfs-progs: build: detect whether -std=gnu90 is supported

    GCC releases prior to 4.5.0 don't support -std=gnu90 so btrfs-progs won't
    build at all on older distros.  We can detect whether the compiler
    supports -std=gnu90 and fall back to -std=gnu89 if it doesn't.
    
    AX_CHECK_COMPILE_FLAG is the right way to do this, but it depends on
    autoconf 2.64.  AX_GCC_VERSION has been deprecated, so we'll use that
    only for earlier autoconf versions so we can drop it when we drop
    support for older autoconf releases.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    jeffmahoney authored and kdave committed May 9, 2018
  7. btrfs-progs: build: autoconf 2.63 compatibility

    Commit 2e1932e (btrfs-progs: build: simplify version tracking)
    started m4_chomp to strip the newlines from the version file.  m4_chomp
    was introduced in autoconf 2.64 but SLE11 ships with autoconf 2.63.
    For purposes of just stripping the newline, m4_flatten is sufficient.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    jeffmahoney authored and kdave committed May 9, 2018
  8. btrfs-progs: convert: fix support for e2fsprogs < 1.42

    Commit 324d4c1 (btrfs-progs: convert: Add larger device support)
    introduced new dependencies on the 64-bit API provided by e2fsprogs.
    That API was introduced in v1.42 (along with bigalloc).
    
    This patch maps the following to their equivalents in e2fsprogs < 1.42.
    - ext2fs_get_block_bitmap_range2
    - ext2fs_inode_data_blocks2
    - ext2fs_read_ext_attr2
    
    Since we need to detect and define EXT2_FLAG_64BITS for compatibilty
    anyway, it makes sense to use that to detect the older e2fsprogs instead
    of defining a new flag ourselves.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    jeffmahoney authored and kdave committed May 9, 2018
  9. btrfs-progs: fi usage: change to output more info without root privilege

    Although per device usage cannot be shown without root privilege,
    per profile usage can be shown.
    
    To achieve this, we just basically need to remove the check of nullness
    of chunkinfo in print_filesystem_usage_by_chunk(), because other
    functions except print_unused() properly handles chunkinfo by
    chunkcount, which is 0 if chunkinfo is null.
    
    As a result, "fi usage" always includes the information of "fi df".
    
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    t-msn authored and kdave committed May 9, 2018
  10. btrfs-progs: fi usage: change warning message more appropriately

    "fi usage" shows the warning "RAID5/6 numbers will be incorrect" when
    running without root privilege even if raid5/6 is not used.  What
    happens is it cannot get the per device profile usage info, so change
    the message more appropriately.
    
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
    [ adjust message ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    t-msn authored and kdave committed May 9, 2018
  11. btrfs-progs: Make __btrfs_fs_incompat return bool

    First this function does the '!!' trick to turn its value into a bool,
    yet the return type is int. Second, the kernel counterpart also returns
    bool.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  12. btrfs-progs: check: Remove ext_ref local variable from check_fs_roots…

    …_lowmem
    
    All real consumers of that variable have inlined the checks since they
    are simple enough. So just remove it.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  13. btrfs-progs: check: Drop ext_ref arument from check_fs_root

    It's no longer used so just remove it.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  14. btrfs-progs: check: Drop ext_ref param from check_fs_first_inode

    It's no longer used in that function so can be dropped altogether.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  15. btrfs-progs: check: Remove ext_ref param from walk_down_tree

    It's no longer used so just remove it.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  16. btrfs-progs: check: Remove ext_ref param from check_fs_first_inode

    It's no longer use and can be dropped.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  17. btrfs-progs: check: Drop unused ext_ref parameter from process_one_leaf

    It's no longer used in the function so just remove it
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  18. btrfs-progs: check: Drop ext_ref argument from check_inode_item

    We can derive this argument from root->fs_info and also make it local
    to the sole switch case it's used.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  19. btrfs-progs: check: Drop ext_ref param from check_dir_item

    This parameter is no longer used in this function, so drop it
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
  20. btrfs-progs: check: Drop ext_ref parameter from find_inode_ref

    This is a boolean parameter which signals whether the fs has the
    EXTENDED_IREF feature flag toggled or not. Since a reference to fs_info
    can be obtained there is no need to pollute the interface.
    
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Su Yue <suy.fnst@cn.fujitsu.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Nikolay Borisov authored and kdave committed May 9, 2018
Older
You can’t perform that action at this time.