• Qu Wenruo's avatar
    btrfs: add dmesg output for first mount and last unmount of a filesystem · 2db31320
    Qu Wenruo authored
    There is a feature request to add dmesg output when unmounting a btrfs.
    There are several alternative methods to do the same thing, but with
    their own problems:
    
    - Use eBPF to watch btrfs_put_super()/open_ctree()
      Not end user friendly, they have to dip their head into the source
      code.
    
    - Watch for directory /sys/fs/<uuid>/
      This is way more simple, but still requires some simple device -> uuid
      lookups.  And a script needs to use inotify to watch /sys/fs/.
    
    Compared to all these, directly outputting the information into dmesg
    would be the most simple one, with both device and UUID included.
    
    And since we're here, also add the output when mounting a filesystem for
    the first time for parity. A more fine grained monitoring of subvolume
    mounts should be done by another layer, like audit.
    
    Now mounting a btrfs with all default mkfs options would look like this:
    
      [81.906566] BTRFS info (device dm-8): first mount of filesystem 633b5c16-afe3-4b79-b195-138fe145e4f2
      [81.907494] BTRFS info (device dm-8): using crc32c (crc32c-intel) checksum algorithm
      [81.908258] BTRFS info (device dm-8): using free space tree
      [81.912644] BTRFS info (device dm-8): auto enabling async discard
      [81.913277] BTRFS info (device dm-8): checking UUID tree
      [91.668256] BTRFS info (device dm-8): last unmount of filesystem 633b5c16-afe3-4b79-b195-138fe145e4f2
    
    CC: stable@vger.kernel.org # 5.4+
    Link: https://github.com/kdave/btrfs-progs/issues/689Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    [ update changelog ]
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    2db31320
disk-io.c 138 KB