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: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
a51571ccb8
commit
93f1c20bc8
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue