Re: [PATCH 2/3] mke2fs: print extra information about existing ext2/3/4 file systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The last time I asked to have the VFS add mountpoint info to the superblock, it got a strong NACK from Al Viro because of the possibility of multiple mountpoints due to bind mounts or namespaces.

I think the current hack is as good as it gets. 

Cheers, Andreas

> On May 5, 2014, at 8:44, Theodore Ts'o <tytso@xxxxxxx> wrote:
> 
> On Mon, May 05, 2014 at 04:38:37PM +0200, Lukáš Czerner wrote:
>>> % ./misc/mke2fs -t ext4 /dev/sdc3
>>> mke2fs 1.42.9 (4-Feb-2014)
>>> /dev/sdc3 contains a ext4 file system
>>>    last mounted on /SOX-backups on Mon May  5 08:59:53 2014
>>> Proceed anyway? (y,n) 
>>> 
>>> ... where this becomes a last-ditch saving through against the
>>> accidental wiping of the enterprise's Sarbanes-Oxley records.  :-)
>>> 
>> 
>> Yep, it's really useful. I just was not sure what is this all about since
>> there was not description and I was missing context from the other patches.
>> 
>> But this makes me think that it would be very useful if blkid could
>> gather this information for other file system if possible :). This
>> might be very useful if we can get some overlap with other file
>> system with the information provided in superblock.
> 
> Unfortunately, as far as I know, none of the other file systems
> currently save the location where the file system was last mounted.
> And to be honest, the way we do it in ext4 is a horrible hack (get out
> your barf bags!):
> 
> static int ext4_file_open(struct inode * inode, struct file * filp)
> {
>    struct super_block *sb = inode->i_sb;
>    struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
>    struct vfsmount *mnt = filp->f_path.mnt;
>    struct path path;
>    char buf[64], *cp;
> 
>    if (unlikely(!(sbi->s_mount_flags & EXT4_MF_MNTDIR_SAMPLED) &&
>             !(sb->s_flags & MS_RDONLY))) {
>        sbi->s_mount_flags |= EXT4_MF_MNTDIR_SAMPLED;
>        /*
>         * Sample where the filesystem has been mounted and
>         * store it in the superblock for sysadmin convenience
>         * when trying to sort through large numbers of block
>         * devices or filesystem images.
>         */
>        memset(buf, 0, sizeof(buf));
>        path.mnt = mnt;
>        path.dentry = mnt->mnt_root;
>        cp = d_path(&path, buf, sizeof(buf));
>        ...
> 
> What we would need to do is file a feature request in the other file
> systems to save this information, and then add proper support for to
> pass this information from the VFS layer into the struct
> super_operations's mount function, which would be the proper, sane way
> to provide this functionality.
> 
>                        - Ted
> 
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux