linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Henk Slager <eye1tm@gmail.com>
To: David Sterba <dsterba@suse.com>
Cc: linux-btrfs <linux-btrfs@vger.kernel.org>, clm@fb.com
Subject: Re: Btrfs progs release 4.8.3
Date: Sun, 13 Nov 2016 14:28:02 +0100	[thread overview]
Message-ID: <CAPmG0jYZnB-Hva2GS3WCGQoer2p3rLu0xJBN3d0JfKPFCvi0sA@mail.gmail.com> (raw)
In-Reply-To: <20161111153831.22430-1-dsterba@suse.com>

On Fri, Nov 11, 2016 at 4:38 PM, David Sterba <dsterba@suse.com> wrote:
> Hi,
>
> btrfs-progs version 4.8.3 have been released. Handful of fixes and lots of
> cleanups.
>
> Changes:
>   * check:
>     * support for clearing space cache (v1)
>     * size reduction of inode backref structure
>   * send:
>     * fix handling of multiple snapshots (-p and -c options)
>     * transfer buffer increased (should reduce number of context switches)
>     * reuse existing file for output (-f), eg. when root cannot create files (NFS)
>   * dump-tree:
>     * print missing items for various structures
>     * new: dev stats, balance status item
>     * sync key names with kernel (the persistent items)
>   * subvol show: now able to print the toplevel subvolume -- the creation time
>     might be wrong though
>   * mkfs:
>     * store the creation time of toplevel root inode

It looks like commit 5c4d53450b2c6ff7169c99f9158c14ae96b7b0a8
 (btrfs-progs: mkfs: store creation time of the toplevel subvolume'')
is not enough to display the creation time of a newly created fs with
tools v4.8.3, or am I missing something?

With kernel 4.8.6-2-default as well as 4.9.0-rc4-1-default:

# /net/src/btrfs-progs/mkfs.btrfs -L ctimetest -m single /dev/loop0
btrfs-progs v4.8.3
See http://btrfs.wiki.kernel.org for more information.

Performing full device TRIM (100.00GiB) ...
Label:              ctimetest
UUID:               d65486f0-368b-4b2a-962b-176cd945feb5
Node size:          16384
Sector size:        4096
Filesystem size:    100.00GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         single            8.00MiB
  System:           single            4.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   100.00GiB  /dev/loop0

# mount /dev/loop0 /mnt
# cd /mnt
# ls > test
# sync
# /net/src/btrfs-progs/btrfs sub sh .
/mnt
        Name:                   <FS_TREE>
        UUID:                   -
        Parent UUID:            -
        Received UUID:          -
        Creation time:          -
        Subvolume ID:           5
        Generation:             9
        Gen at creation:        0
        Parent ID:              0
        Top level ID:           0
        Flags:                  -
        Snapshot(s):

I noticed that   btrfs_set_stack_timespec_sec(&inode_item.otime, now);
is called twice during mkfs.btrfs, but during btrfs sub sh
get_ri.otime is 0 just before it is formatted/printed. My idea was to
patch the code (kernel and/or progs) such that I can also put a time
in some exiting filesystems.

>     * print UUID in the summary
>   * build: travis CI for devel
>   * other:
>     * lots of cleanups and refactoring
>     * switched to on-stack path structure
>     * fixes from coverity, asan, ubsan
>     * new tests
>     * updates in testing infrastructure
>     * fixed convert test 005
>
> Changes since rc1:
>   * fixed convert test 005
>   * updates in testing infrastructure
>   * mkfs: print UUID in the summary
>
> Tarballs: https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/
> Git: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
>
> Shortlog:
>
> David Sterba (147):
>       btrfs-progs: tests: switch to dump- commands from inspect
>       btrfs-progs: convert: switch more messages to common helpers
>       btrfs-progs: qgroups show: handle errors when resolving root id
>       btrfs-progs: remove unused function btrfs_get_path_rootid
>       btrfs-progs: rename lookup_ino_rootid
>       btrfs-progs: use existing rootid resolving helper in btrfs_list_get_path_rootid
>       btrfs-progs: opencode trivial helper __free_all_subvolumn
>       btrfs-progs: remove leading underscores from several helper
>       btrfs-progs: use symbolic tree name when searching
>       btrfs-progs: list: constify prefix arugment
>       btrfs-progs: use enum for list layout type
>       btrfs-progs: list: rename some helpers
>       btrfs-progs: list: switch to common message helpers
>       btrfs-progs: subvol list: setup list filters later
>       btrfs-progs: return void from btrfs_list_setup_filter
>       btrfs-progs: subvol list: cleanup layout argument setup
>       btrfs-progs: subvol list: remove useless comments
>       btrfs-progs: subvol list: simplify value assignments
>       btrfs-progs: subvol list: consilidate naming of otime varaibles
>       btrfs-progs: subvol list: add simplified helper for adding root backrefs
>       btrfs-progs: subvol list: consolidate uuid types accross functions
>       btrfs-progs: remove trivial helper root_lookup_init
>       btrfs-progs: subvol list: remove ugly goto construct
>       btrfs-progs: subvol list: better error message if subvol insertion fails
>       btrfs-progs: subvol show: print more details about toplevel subvolume
>       btrfs-progs: dump-tree: print missing dev_item data
>       btrfs-progs: dump-tree: print missing chunk data
>       btrfs-progs: dump-tree: print missing dev_extent data
>       btrfs-progs: dump-tree: factor inode_item dump to function
>       btrfs-progs: dump-tree: add helper to print timespec
>       btrfs-progs: dump-tree: print missing inode_item data
>       btrfs-progs: dump-tree: print missing dir_item data
>       btrfs-progs: dump-tree: print more root_item data
>       btrfs-progs: dump-tree: print missing data for file extent item
>       btrfs-progs: mkfs: store creation time of the toplevel subvolume
>       btrfs-progs: introduce key type for persistent temporary items
>       btrfs-progs: print-tree: extract offset from the item key
>       btrfs-progs: introduce key type for persistent permanent items
>       btrfs-progs: switch dev stats item to the permanent item key
>       btrfs-progs: teach print_leaf about permanent item subtypes
>       btrfs-progs: teach print_leaf about temporary item subtypes
>       btrfs-progs: add balance status structures
>       btrfs-progs: dump-tree: print balance status item
>       btrfs-progs: add dev stats on-disk structure
>       btrfs-progs: dump-tree: print dev stats
>       btrfs-progs: dump-tree: consolidate data key names
>       btrfs-progs: remove unused parameter from print_inode_item
>       btrfs-progs: dump-tree: pass item size instead of item
>       btrfs-progs: dump-tree: return void from print_* functions
>       btrfs-progs: dump-tree: simplify and fix check for empty uuid
>       btrfs-progs: dump-tree: constify char argument in print_root_ref
>       btrfs-progs: dump-tree: add untyped item ptr helper and use it
>       btrfs-progs: dump-tree: rename extent buffer variable in btrfs_print_leaf
>       btrfs-progs: dump-tree: move variable declarations closer to their use
>       btrfs-progs: dump-tree: move remaining item variables to the scope of use
>       btrfs-progs: dump-tree: cleanup types for item number iteration
>       btrfs-progs: dump-tree: convert key-to-string to table
>       btrfs-progs: dump-tree: convert dir-item-to-string to table
>       btrfs-progs: tests: add test for multi-subvolume send from parent
>       btrfs-progs: send: constify some arugments
>       btrfs-progs: send: increase size of transfer buffer
>       btrfs-progs: send: use proper type for read result, and rename the variable
>       btrfs-progs: send: clean types in write_buf
>       btrfs-progs: send: cleanup, rename some variables in dump_thread
>       btrfs-progs: send: cleanup, rename send context variables
>       btrfs-progs: send: cleanup use of ctransid delta temporary variable in find_good_parent
>       btrfs-progs: check: unify type for inode_backref::filetype
>       btrfs-progs: check: unify type for inode_backref::itemtype
>       btrfs-progs: check: reorder fields in inode_backref for better packing
>       btrfs-progs: mkfs: use const char for unmodified members of directory_name_entry
>       btrfs-progs: mkfs: constify some char parameters
>       btrfs-progs: reduce size of btrfs_path, locks are not used
>       btrfs-progs: reduce size of btrfs_path::reada
>       btrfs-progs: reduce size of btrfs_path::lowest_level
>       btrfs-progs: mkfs: use on-stack path buffer in cleanup_temp_chunks
>       btrfs-progs: convert: use on-stack path buffer in record_file_blocks
>       btrfs-progs: convert: use on-stack path buffer in create_image
>       btrfs-progs: convert: use on-stack path buffer in link_subvol
>       btrfs-progs: image: use on-stack path buffer in create_metadump
>       btrfs-progs: image: use on-stack path buffer in fixup_devices
>       btrfs-progs: image: add symbolic constant for max thread count
>       btrfs-progs: image: use fixed-size array for worker thread pointers
>       btrfs-progs: image: use embedded array for metadump cluster buffer
>       btrfs-progs: dump-tree: use new names for obsoleted keys
>       btrfs-progs: fi du: don't redefine standard macro/function
>       btrfs-progs: utils: remove useless check in make_btrfs
>       btrfs-progs: qgroup: use on-stack path buffer in repair_qgroup_info
>       btrfs-progs: qgroup: use on-stack path buffer in repair_qgroup_status
>       btrfs-progs: convert bitfield to separate variables in btrfs_path
>       btrfs-progs: check: use on-stack path buffer in add_missing_dir_index
>       btrfs-progs: check: use on-stack path buffer in delete_dir_index
>       btrfs-progs: check: use on-stack path buffer in find_normal_file_extent
>       btrfs-progs: check: use on-stack path buffer in try_repair_inode
>       btrfs-progs: check: use on-stack path buffer in repair_btree
>       btrfs-progs: check: use on-stack path buffer in try_to_fix_bad_block
>       btrfs-progs: check: use on-stack path buffer in verify_space_cache
>       btrfs-progs: check: use on-stack path buffer in check_extent_csums
>       btrfs-progs: check: use on-stack path buffer in check_extent_exists
>       btrfs-progs: check: use on-stack path buffer in delete_duplicate_records
>       btrfs-progs: check: use on-stack path buffer in record_orphan_data_extents
>       btrfs-progs: check: use on-stack path buffer in fixup_extent_refs
>       btrfs-progs: check: use on-stack path buffer in fixup_extent_flags
>       btrfs-progs: check: use on-stack path buffer in reset_block_groups
>       btrfs-progs: check: use on-stack path buffer in reset_balance
>       btrfs-progs: check: use on-stack path buffer in recow_extent_buffer
>       btrfs-progs: check: use on-stack path buffer in delete_bad_item
>       btrfs-progs: check: use on-stack path buffer in fill_csum_tree_from_one_fs_root
>       btrfs-progs: check: use on-stack path buffer in fill_csum_tree_from_fs
>       btrfs-progs: check: use on-stack path buffer in fill_csum_tree_from_extent
>       btrfs-progs: check: use on-stack path buffer in build_roots_info_cache
>       btrfs-progs: check: use on-stack path buffer in repair_root_items
>       btrfs-progs: tree-stats: use on-stack path buffer in calc_root_size
>       btrfs-progs: restore: use on-stack path buffer in set_file_xattrs
>       btrfs-progs: restore: use on-stack path buffer in copy_metadata
>       btrfs-progs: restore: use on-stack path buffer in copy_file
>       btrfs-progs: restore: use on-stack path buffer in copy_symlink
>       btrfs-progs: restore: use on-stack path buffer in search_dir
>       btrfs-progs: restore: use on-stack path buffer in do_list_roots
>       btrfs-progs: restore: use on-stack path buffer in find_first_dir
>       btrfs-progs: check: remove unused variable in record_extent
>       btrfs-progs: chunk-recover: use on-stack path buffer in rebuild_block_group
>       btrfs-progs: btrfstune: use on-stack path buffer in change_extents_uuid
>       btrfs-progs: btrfstune: use on-stack path buffer in change_devices_uuid
>       btrfs-progs: mkfs: simplify checks in directory_select
>       btrfs-progs: docs: update mkfs help string and manual page
>       btrfs-progs: fix unaligned u64 access in btrfs_alloc_data_chunk
>       btrfs-progs: fix search tree v2 ioctl detection
>       btrfs-progs: tests: teach scan-results about more errors
>       btrfs-progs: crc32: use fallback implementation for unaligned buffers
>       btrfs-progs: use correct type for device id iteration in get_fs_info
>       btrfs-progs: tests: teach extract_image about packed streams
>       btrfs-progs: send: check for output file existence before creating
>       btrfs-progs: mkfs: add temporary variable for fs features
>       btrfs-progs: mkfs: extend mkfs features with compat, safe and default versions
>       btrfs-progs: mkfs: enhance feature table
>       btrfs-progs: mkfs: add names of matching sysfs feature names
>       btrfs-progs: mkfs: print the new UUID
>       btrfs-progs: tests: check if kernel has btrfs support
>       btrfs-progs: tests: refactor post-convert check helpers
>       btrfs-progs: tests: add assertion helper
>       btrfs-progs: tests: add path assertions to post-checks
>       btrfs-progs: tests: add quotes around variables in common
>       btrfs-progs: tests: add quotation around variables in common.convert
>       btrfs-progs: tests: add quotation around variables in support scripts
>       btrfs-progs: tests: enhance run_mayfail description comment
>       btrfs-progs: update CHANGES for v4.8.3
>       Btrfs progs v4.8.3
>
> Qu Wenruo (5):
>       btrfs-progs: check: add support to clear v1 free space cache
>       btrfs-progs: fsck-tests: Check if clear space cache works
>       btrfs-progs: Ignore clang complete file
>       btrfs-progs: remove send-test tool
>       btrfs-progs: Fix memory leak in write_raid56_with_parity
>
> Roman Lebedev (1):
>       btrfs-progs: Add travis CI build support
>
> Tsutomu Itoh (3):
>       btrfs-progs: send: fix handling of multiple snapshots (-p option)
>       btrfs-progs: send: fix handling of -c option
>       btrfs-progs: tests: add checking of send multiple clone source option
> --
> 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

  reply	other threads:[~2016-11-13 13:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-11 15:38 Btrfs progs release 4.8.3 David Sterba
2016-11-13 13:28 ` Henk Slager [this message]
2016-11-14 12:25   ` David Sterba

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=CAPmG0jYZnB-Hva2GS3WCGQoer2p3rLu0xJBN3d0JfKPFCvi0sA@mail.gmail.com \
    --to=eye1tm@gmail.com \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).