Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93f1c20b authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Al Viro
Browse files

vfs: Export file system uuid via /proc/<pid>/mountinfo



We add a per superblock uuid field. File systems should
update the uuid in the fill_super callback

Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent a51571cc
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1002,6 +1002,18 @@ const struct seq_operations mounts_op = {
	.show	= show_vfsmnt
};

static int uuid_is_nil(u8 *uuid)
{
	int i;
	u8  *cp = (u8 *)uuid;

	for (i = 0; i < 16; i++) {
		if (*cp++)
			return 0;
	}
	return 1;
}

static int show_mountinfo(struct seq_file *m, void *v)
{
	struct proc_mounts *p = m->private;
@@ -1040,6 +1052,10 @@ static int show_mountinfo(struct seq_file *m, void *v)
	if (IS_MNT_UNBINDABLE(mnt))
		seq_puts(m, " unbindable");

	if (!uuid_is_nil(mnt->mnt_sb->s_uuid))
		/* print the uuid */
		seq_printf(m, " uuid:%pU", mnt->mnt_sb->s_uuid);

	/* Filesystem specific data */
	seq_puts(m, " - ");
	show_type(m, sb);
+1 −0
Original line number Diff line number Diff line
@@ -1408,6 +1408,7 @@ struct super_block {
	wait_queue_head_t	s_wait_unfrozen;

	char s_id[32];				/* Informational name */
	u8 s_uuid[16];				/* UUID */

	void 			*s_fs_info;	/* Filesystem private info */
	fmode_t			s_mode;