[PATCH 75/76] fs: Use fs view device from struct super_block

From: Mark Fasheh
Date: Tue May 08 2018 - 14:07:03 EST


We have some places which access s_dev directly from struct super_block.

Convert those to get v_dev from the default super block view.

Signed-off-by: Mark Fasheh <mfasheh@xxxxxxx>
---
drivers/mtd/mtdsuper.c | 2 +-
drivers/staging/lustre/lustre/llite/llite_lib.c | 6 +-
fs/autofs4/autofs_i.h | 2 +-
fs/autofs4/dev-ioctl.c | 10 +--
fs/ceph/super.c | 2 +-
fs/cramfs/inode.c | 4 +-
fs/exofs/super.c | 2 +-
fs/fuse/inode.c | 2 +-
fs/gfs2/ops_fstype.c | 2 +-
fs/gfs2/quota.c | 5 +-
fs/gfs2/sys.c | 3 +-
fs/gfs2/trace_gfs2.h | 30 ++++-----
fs/nfs/nfs4trace.h | 2 +-
fs/nfs/super.c | 6 +-
fs/nfsd/nfs3xdr.c | 2 +-
fs/nfsd/nfsfh.c | 6 +-
fs/nilfs2/super.c | 2 +-
fs/ocfs2/journal.c | 13 ++--
fs/ocfs2/ocfs2_trace.h | 4 +-
fs/ocfs2/super.c | 4 +-
fs/overlayfs/inode.c | 4 +-
fs/overlayfs/readdir.c | 4 +-
fs/proc_namespace.c | 2 +-
fs/quota/dquot.c | 2 +-
fs/reiserfs/journal.c | 6 +-
fs/romfs/super.c | 6 +-
fs/super.c | 8 +--
fs/xfs/scrub/trace.h | 26 ++++----
fs/xfs/xfs_trace.h | 84 ++++++++++++-------------
fs/xfs/xfs_trans_dquot.c | 2 +-
include/trace/events/ext4.h | 36 +++++------
include/trace/events/f2fs.h | 18 +++---
include/trace/events/writeback.h | 2 +-
init/do_mounts.c | 2 +-
kernel/audit_watch.c | 2 +-
net/unix/diag.c | 2 +-
security/tomoyo/realpath.c | 4 +-
37 files changed, 162 insertions(+), 157 deletions(-)

diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index d58a61c09304..f5346de9b29d 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -51,7 +51,7 @@ static int get_sb_mtd_set(struct super_block *sb, void *_mtd)
struct mtd_info *mtd = _mtd;

sb->s_mtd = mtd;
- sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
+ sb->s_view.v_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
sb->s_bdi = bdi_get(mtd_bdi);

return 0;
diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
index 6f6df27635d4..ffa6e7d92080 100644
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
@@ -524,7 +524,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt)
goto out_lock_cn_cb;
}

- sbi->ll_sdev_orig = sb->s_dev;
+ sbi->ll_sdev_orig = sb->s_view.v_dev;

/* We set sb->s_dev equal on all lustre clients in order to support
* NFS export clustering. NFSD requires that the FSID be the same
@@ -535,7 +535,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt)
*/
uuid = obd_get_uuid(sbi->ll_md_exp);
if (uuid) {
- sb->s_dev = get_uuid2int(uuid->uuid, strlen(uuid->uuid));
+ sb->s_view.v_dev = get_uuid2int(uuid->uuid, strlen(uuid->uuid));
get_uuid2fsid(uuid->uuid, strlen(uuid->uuid), &sbi->ll_fsid);
}

@@ -670,7 +670,7 @@ void ll_kill_super(struct super_block *sb)
* in put_super not affected real removing devices
*/
if (sbi) {
- sb->s_dev = sbi->ll_sdev_orig;
+ sb->s_view.v_dev = sbi->ll_sdev_orig;
sbi->ll_umounting = 1;

/* wait running statahead threads to quit */
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index 4737615f0eaa..31fcf15108eb 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -225,7 +225,7 @@ void autofs4_catatonic_mode(struct autofs_sb_info *);

static inline u32 autofs4_get_dev(struct autofs_sb_info *sbi)
{
- return new_encode_dev(sbi->sb->s_dev);
+ return new_encode_dev(sbi->sb->s_view.v_dev);
}

static inline u64 autofs4_get_ino(struct autofs_sb_info *sbi)
diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
index 6b28b01e5022..6d1f1bc5db06 100644
--- a/fs/autofs4/dev-ioctl.c
+++ b/fs/autofs4/dev-ioctl.c
@@ -231,7 +231,7 @@ static int find_autofs_mount(const char *pathname,

static int test_by_dev(const struct path *path, void *p)
{
- return path->dentry->d_sb->s_dev == *(dev_t *)p;
+ return path->dentry->d_sb->s_view.v_dev == *(dev_t *)p;
}

static int test_by_type(const struct path *path, void *p)
@@ -243,7 +243,7 @@ static int test_by_type(const struct path *path, void *p)

/*
* Open a file descriptor on the autofs mount point corresponding
- * to the given path and device number (aka. new_encode_dev(sb->s_dev)).
+ * to the given path and device number (aka. new_encode_dev(sb->s_view.v_dev)).
*/
static int autofs_dev_ioctl_open_mountpoint(const char *name, dev_t devid)
{
@@ -451,7 +451,7 @@ static int autofs_dev_ioctl_requester(struct file *fp,
goto out;
}

- devid = sbi->sb->s_dev;
+ devid = sbi->sb->s_view.v_dev;

param->requester.uid = param->requester.gid = -1;

@@ -554,14 +554,14 @@ static int autofs_dev_ioctl_ismountpoint(struct file *fp,
test_by_type, &type);
if (err)
goto out;
- devid = new_encode_dev(path.dentry->d_sb->s_dev);
+ devid = new_encode_dev(path.dentry->d_sb->s_view.v_dev);
err = 0;
if (path.mnt->mnt_root == path.dentry) {
err = 1;
magic = path.dentry->d_sb->s_magic;
}
} else {
- dev_t dev = sbi->sb->s_dev;
+ dev_t dev = sbi->sb->s_view.v_dev;

err = find_autofs_mount(name, &path, test_by_dev, &dev);
if (err)
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index fb2bc9c15a23..2f6c4c16a5ad 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -1055,7 +1055,7 @@ static struct dentry *ceph_mount(struct file_system_type *fs_type,
static void ceph_kill_sb(struct super_block *s)
{
struct ceph_fs_client *fsc = ceph_sb_to_client(s);
- dev_t dev = s->s_dev;
+ dev_t dev = s->s_view.v_dev;

dout("kill_sb %p\n", s);

diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index eb633de7ccbe..239ec223433f 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -674,8 +674,8 @@ static int cramfs_statfs(struct dentry *dentry, struct kstatfs *buf)

if (sb->s_bdev)
id = huge_encode_dev(sb->s_bdev->bd_dev);
- else if (sb->s_dev)
- id = huge_encode_dev(sb->s_dev);
+ else if (sb->s_view.v_dev)
+ id = huge_encode_dev(sb->s_view.v_dev);

buf->f_type = CRAMFS_MAGIC;
buf->f_bsize = PAGE_SIZE;
diff --git a/fs/exofs/super.c b/fs/exofs/super.c
index 179cd5c2f52a..6149c1bc02ff 100644
--- a/fs/exofs/super.c
+++ b/fs/exofs/super.c
@@ -760,7 +760,7 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
sb->s_max_links = EXOFS_LINK_MAX;
atomic_set(&sbi->s_curr_pending, 0);
sb->s_bdev = NULL;
- sb->s_dev = 0;
+ sb->s_view.v_dev = 0;

comp.obj.partition = sbi->one_comp.obj.partition;
comp.obj.id = EXOFS_SUPER_ID;
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index d6d2fbe6c3ec..3b4d753b8c70 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -1103,7 +1103,7 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
if (!fud)
goto err_put_conn;

- fc->dev = sb->s_dev;
+ fc->dev = sb->s_view.v_dev;
fc->sb = sb;
err = fuse_bdi_init(fc, sb);
if (err)
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index e6a0a8a89ea7..25a93cacaa1d 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -1222,7 +1222,7 @@ static int fill_super(struct super_block *sb, struct gfs2_args *args, int silent
static int set_gfs2_super(struct super_block *s, void *data)
{
s->s_bdev = data;
- s->s_dev = s->s_bdev->bd_dev;
+ s->s_view.v_dev = s->s_bdev->bd_dev;
s->s_bdi = bdi_get(s->s_bdev->bd_bdi);
return 0;
}
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 7a98abd340ee..21499dd4ad5c 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -1227,7 +1227,7 @@ int gfs2_quota_check(struct gfs2_inode *ip, kuid_t uid, kgid_t gid,
&qd->qd_flags)) {
print_message(qd, "exceeded");
quota_send_warning(qd->qd_id,
- sdp->sd_vfs->s_dev,
+ sdp->sd_vfs->s_view.v_dev,
QUOTA_NL_BHARDWARN);
}
error = -EDQUOT;
@@ -1238,7 +1238,8 @@ int gfs2_quota_check(struct gfs2_inode *ip, kuid_t uid, kgid_t gid,
gfs2_tune_get(sdp, gt_quota_warn_period)
* HZ)) {
quota_send_warning(qd->qd_id,
- sdp->sd_vfs->s_dev, QUOTA_NL_BSOFTWARN);
+ sdp->sd_vfs->s_view.v_dev,
+ QUOTA_NL_BSOFTWARN);
error = print_message(qd, "warning");
qd->qd_last_warn = jiffies;
}
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index c191fa58a1df..d5036ad407b6 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -63,7 +63,8 @@ static struct kset *gfs2_kset;
static ssize_t id_show(struct gfs2_sbd *sdp, char *buf)
{
return snprintf(buf, PAGE_SIZE, "%u:%u\n",
- MAJOR(sdp->sd_vfs->s_dev), MINOR(sdp->sd_vfs->s_dev));
+ MAJOR(sdp->sd_vfs->s_view.v_dev),
+ MINOR(sdp->sd_vfs->s_view.v_dev));
}

static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf)
diff --git a/fs/gfs2/trace_gfs2.h b/fs/gfs2/trace_gfs2.h
index b9318b49ff8f..b25112935281 100644
--- a/fs/gfs2/trace_gfs2.h
+++ b/fs/gfs2/trace_gfs2.h
@@ -106,7 +106,7 @@ TRACE_EVENT(gfs2_glock_state_change,
),

TP_fast_assign(
- __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->glnum = gl->gl_name.ln_number;
__entry->gltype = gl->gl_name.ln_type;
__entry->cur_state = glock_trace_state(gl->gl_state);
@@ -142,7 +142,7 @@ TRACE_EVENT(gfs2_glock_put,
),

TP_fast_assign(
- __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->gltype = gl->gl_name.ln_type;
__entry->glnum = gl->gl_name.ln_number;
__entry->cur_state = glock_trace_state(gl->gl_state);
@@ -176,7 +176,7 @@ TRACE_EVENT(gfs2_demote_rq,
),

TP_fast_assign(
- __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->gltype = gl->gl_name.ln_type;
__entry->glnum = gl->gl_name.ln_number;
__entry->cur_state = glock_trace_state(gl->gl_state);
@@ -211,7 +211,7 @@ TRACE_EVENT(gfs2_promote,
),

TP_fast_assign(
- __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->glnum = gh->gh_gl->gl_name.ln_number;
__entry->gltype = gh->gh_gl->gl_name.ln_type;
__entry->first = first;
@@ -241,7 +241,7 @@ TRACE_EVENT(gfs2_glock_queue,
),

TP_fast_assign(
- __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->glnum = gh->gh_gl->gl_name.ln_number;
__entry->gltype = gh->gh_gl->gl_name.ln_type;
__entry->queue = queue;
@@ -280,7 +280,7 @@ TRACE_EVENT(gfs2_glock_lock_time,
),

TP_fast_assign(
- __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->glnum = gl->gl_name.ln_number;
__entry->gltype = gl->gl_name.ln_type;
__entry->status = gl->gl_lksb.sb_status;
@@ -335,7 +335,7 @@ TRACE_EVENT(gfs2_pin,
),

TP_fast_assign(
- __entry->dev = bd->bd_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = bd->bd_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->pin = pin;
__entry->len = bd->bd_bh->b_size;
__entry->block = bd->bd_bh->b_blocknr;
@@ -365,7 +365,7 @@ TRACE_EVENT(gfs2_log_flush,
),

TP_fast_assign(
- __entry->dev = sdp->sd_vfs->s_dev;
+ __entry->dev = sdp->sd_vfs->s_view.v_dev;
__entry->start = start;
__entry->log_seq = sdp->sd_log_sequence;
__entry->flags = flags;
@@ -391,7 +391,7 @@ TRACE_EVENT(gfs2_log_blocks,
),

TP_fast_assign(
- __entry->dev = sdp->sd_vfs->s_dev;
+ __entry->dev = sdp->sd_vfs->s_view.v_dev;
__entry->blocks = blocks;
),

@@ -414,7 +414,7 @@ TRACE_EVENT(gfs2_ail_flush,
),

TP_fast_assign(
- __entry->dev = sdp->sd_vfs->s_dev;
+ __entry->dev = sdp->sd_vfs->s_view.v_dev;
__entry->start = start;
__entry->sync_mode = wbc->sync_mode;
__entry->nr_to_write = wbc->nr_to_write;
@@ -454,7 +454,7 @@ TRACE_EVENT(gfs2_bmap,
),

TP_fast_assign(
- __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->lblock = lblock;
__entry->pblock = buffer_mapped(bh) ? bh->b_blocknr : 0;
__entry->inum = ip->i_no_addr;
@@ -490,7 +490,7 @@ TRACE_EVENT(gfs2_iomap_start,
),

TP_fast_assign(
- __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->inum = ip->i_no_addr;
__entry->pos = pos;
__entry->length = length;
@@ -521,7 +521,7 @@ TRACE_EVENT(gfs2_iomap_end,
),

TP_fast_assign(
- __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->inum = ip->i_no_addr;
__entry->offset = iomap->offset;
__entry->length = iomap->length;
@@ -558,7 +558,7 @@ TRACE_EVENT(gfs2_block_alloc,
),

TP_fast_assign(
- __entry->dev = rgd->rd_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+ __entry->dev = rgd->rd_gl->gl_name.ln_sbd->sd_vfs->s_view.v_dev;
__entry->start = block;
__entry->inum = ip->i_no_addr;
__entry->len = len;
@@ -597,7 +597,7 @@ TRACE_EVENT(gfs2_rs,
),

TP_fast_assign(
- __entry->dev = rs->rs_rbm.rgd->rd_sbd->sd_vfs->s_dev;
+ __entry->dev = rs->rs_rbm.rgd->rd_sbd->sd_vfs->s_view.v_dev;
__entry->rd_addr = rs->rs_rbm.rgd->rd_addr;
__entry->rd_free_clone = rs->rs_rbm.rgd->rd_free_clone;
__entry->rd_reserved = rs->rs_rbm.rgd->rd_reserved;
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index 07f81f981792..4cdb6e356742 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -410,7 +410,7 @@ DECLARE_EVENT_CLASS(nfs4_open_event,
__entry->error = error;
__entry->flags = flags;
__entry->fmode = (__force unsigned int)ctx->mode;
- __entry->dev = ctx->dentry->d_sb->s_dev;
+ __entry->dev = ctx->dentry->d_sb->s_view.v_dev;
if (!IS_ERR_OR_NULL(state)) {
inode = state->inode;
__entry->stateid_seq =
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 5e470e233c83..5dc8226409f1 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2321,7 +2321,7 @@ static void nfs_initialise_sb(struct super_block *sb)

/* We probably want something more informative here */
snprintf(sb->s_id, sizeof(sb->s_id),
- "%u:%u", MAJOR(sb->s_dev), MINOR(sb->s_dev));
+ "%u:%u", MAJOR(sb->s_view.v_dev), MINOR(sb->s_view.v_dev));

if (sb->s_blocksize == 0)
sb->s_blocksize = nfs_block_bits(server->wsize,
@@ -2433,7 +2433,7 @@ static int nfs_set_super(struct super_block *s, void *data)
s->s_d_op = server->nfs_client->rpc_ops->dentry_ops;
ret = set_anon_super(s, server);
if (ret == 0)
- server->s_dev = s->s_dev;
+ server->s_dev = s->s_view.v_dev;
return ret;
}

@@ -2708,7 +2708,7 @@ EXPORT_SYMBOL_GPL(nfs_fs_mount);
void nfs_kill_super(struct super_block *s)
{
struct nfs_server *server = NFS_SB(s);
- dev_t dev = s->s_dev;
+ dev_t dev = s->s_view.v_dev;

generic_shutdown_super(s);

diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
index 1a70581e1cb2..d432f7020d39 100644
--- a/fs/nfsd/nfs3xdr.c
+++ b/fs/nfsd/nfs3xdr.c
@@ -147,7 +147,7 @@ static __be32 *encode_fsid(__be32 *p, struct svc_fh *fhp)
default:
case FSIDSOURCE_DEV:
p = xdr_encode_hyper(p, (u64)huge_encode_dev
- (fhp->fh_dentry->d_sb->s_dev));
+ (fhp->fh_dentry->d_sb->s_view.v_dev));
break;
case FSIDSOURCE_FSID:
p = xdr_encode_hyper(p, (u64) fhp->fh_export->ex_fsid);
diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
index 8aa011820c4a..2f819ae8f47e 100644
--- a/fs/nfsd/nfsfh.c
+++ b/fs/nfsd/nfsfh.c
@@ -440,7 +440,7 @@ static bool fsid_type_ok_for_exp(u8 fsid_type, struct svc_export *exp)
{
switch (fsid_type) {
case FSID_DEV:
- if (!old_valid_dev(exp_sb(exp)->s_dev))
+ if (!old_valid_dev(exp_sb(exp)->s_view.v_dev))
return 0;
/* FALL THROUGH */
case FSID_MAJOR_MINOR:
@@ -505,7 +505,7 @@ static void set_version_and_fsid_type(struct svc_fh *fhp, struct svc_export *exp
else
fsid_type = FSID_UUID4_INUM;
}
- } else if (!old_valid_dev(exp_sb(exp)->s_dev))
+ } else if (!old_valid_dev(exp_sb(exp)->s_view.v_dev))
/* for newer device numbers, we must use a newer fsid format */
fsid_type = FSID_ENCODE_DEV;
else
@@ -528,7 +528,7 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry,
*/

struct inode * inode = d_inode(dentry);
- dev_t ex_dev = exp_sb(exp)->s_dev;
+ dev_t ex_dev = exp_sb(exp)->s_view.v_dev;

dprintk("nfsd: fh_compose(exp %02x:%02x/%ld %pd2, ino=%ld)\n",
MAJOR(ex_dev), MINOR(ex_dev),
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index 6ffeca84d7c3..0239b1b495db 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -1267,7 +1267,7 @@ static int nilfs_identify(char *data, struct nilfs_super_data *sd)
static int nilfs_set_bdev_super(struct super_block *s, void *data)
{
s->s_bdev = data;
- s->s_dev = s->s_bdev->bd_dev;
+ s->s_view.v_dev = s->s_bdev->bd_dev;
return 0;
}

diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index e0047816c7b7..520c3cdee1e1 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1435,7 +1435,8 @@ static int __ocfs2_recovery_thread(void *arg)
mlog(ML_ERROR,
"Error %d recovering node %d on device (%u,%u)!\n",
status, node_num,
- MAJOR(osb->sb->s_dev), MINOR(osb->sb->s_dev));
+ MAJOR(osb->sb->s_view.v_dev),
+ MINOR(osb->sb->s_view.v_dev));
mlog(ML_ERROR, "Volume requires unmount.\n");
}

@@ -1624,8 +1625,9 @@ static int ocfs2_replay_journal(struct ocfs2_super *osb,
ocfs2_replay_map_set_state(osb, REPLAY_NEEDED);

printk(KERN_NOTICE "ocfs2: Begin replay journal (node %d, slot %d) on "\
- "device (%u,%u)\n", node_num, slot_num, MAJOR(osb->sb->s_dev),
- MINOR(osb->sb->s_dev));
+ "device (%u,%u)\n", node_num, slot_num,
+ MAJOR(osb->sb->s_view.v_dev),
+ MINOR(osb->sb->s_view.v_dev));

OCFS2_I(inode)->ip_clusters = le32_to_cpu(fe->i_clusters);

@@ -1681,8 +1683,9 @@ static int ocfs2_replay_journal(struct ocfs2_super *osb,
jbd2_journal_destroy(journal);

printk(KERN_NOTICE "ocfs2: End replay journal (node %d, slot %d) on "\
- "device (%u,%u)\n", node_num, slot_num, MAJOR(osb->sb->s_dev),
- MINOR(osb->sb->s_dev));
+ "device (%u,%u)\n", node_num, slot_num,
+ MAJOR(osb->sb->s_view.v_dev),
+ MINOR(osb->sb->s_view.v_dev));
done:
/* drop the lock on this nodes journal */
if (got_lock)
diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h
index e2a11aaece10..cb9b7bd9e0c4 100644
--- a/fs/ocfs2/ocfs2_trace.h
+++ b/fs/ocfs2/ocfs2_trace.h
@@ -700,8 +700,8 @@ TRACE_EVENT(ocfs2_trim_extent,
__field(__u64, count)
),
TP_fast_assign(
- __entry->dev_major = MAJOR(sb->s_dev);
- __entry->dev_minor = MINOR(sb->s_dev);
+ __entry->dev_major = MAJOR(sb->s_view.v_dev);
+ __entry->dev_minor = MINOR(sb->s_view.v_dev);
__entry->blk = blk;
__entry->count = count;
),
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index ffa4952d432b..7d9d34c360e4 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -1973,7 +1973,7 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err)

ocfs2_delete_osb(osb);
kfree(osb);
- sb->s_dev = 0;
+ sb->s_view.v_dev = 0;
sb->s_fs_info = NULL;
}

@@ -2102,7 +2102,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
ocfs2_init_node_maps(osb);

snprintf(osb->dev_str, sizeof(osb->dev_str), "%u,%u",
- MAJOR(osb->sb->s_dev), MINOR(osb->sb->s_dev));
+ MAJOR(osb->sb->s_view.v_dev), MINOR(osb->sb->s_view.v_dev));

osb->max_slots = le16_to_cpu(di->id2.i_super.s_max_slots);
if (osb->max_slots > OCFS2_MAX_SLOTS || osb->max_slots == 0) {
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
index ebf2a857d547..6169f36337bf 100644
--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -132,7 +132,7 @@ int ovl_getattr(const struct path *path, struct kstat *stat,
* number are unique, so we use the overlay st_dev,
* which is friendly to du -x.
*/
- stat->dev = dentry->d_sb->s_dev;
+ stat->dev = dentry->d_sb->s_view.v_dev;
} else if (!OVL_TYPE_UPPER(type)) {
/*
* For non-samefs setup, to make sure that st_dev/st_ino
@@ -151,7 +151,7 @@ int ovl_getattr(const struct path *path, struct kstat *stat,
* overlay st_dev} is not unique, so use the non persistent
* overlay st_ino for directories.
*/
- stat->dev = dentry->d_sb->s_dev;
+ stat->dev = dentry->d_sb->s_view.v_dev;
stat->ino = dentry->d_inode->i_ino;
}

diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index c11f5c0906c3..3b2ce71de48d 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -489,7 +489,7 @@ static int ovl_cache_update_ino(struct path *path, struct ovl_cache_entry *p)
if (err)
goto fail;

- WARN_ON_ONCE(dir->d_sb->s_dev != stat.dev);
+ WARN_ON_ONCE(dir->d_sb->s_view.v_dev != stat.dev);
ino = stat.ino;
}

@@ -660,7 +660,7 @@ static int ovl_iterate_real(struct file *file, struct dir_context *ctx)
if (err)
return err;

- WARN_ON_ONCE(dir->d_sb->s_dev != stat.dev);
+ WARN_ON_ONCE(dir->d_sb->s_view.v_dev != stat.dev);
rdt.parent_ino = stat.ino;
}

diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
index e16fb8f2049e..842d6f4fe014 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -137,7 +137,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
int err;

seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
- MAJOR(sb->s_dev), MINOR(sb->s_dev));
+ MAJOR(sb->s_view.v_dev), MINOR(sb->s_view.v_dev));
if (sb->s_op->show_path) {
err = sb->s_op->show_path(m, mnt->mnt_root);
if (err)
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index ba6d549323cb..124f8dff5214 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -1242,7 +1242,7 @@ static void flush_warnings(struct dquot_warn *warn)
print_warning(&warn[i]);
#endif
quota_send_warning(warn[i].w_dq_id,
- warn[i].w_sb->s_dev, warn[i].w_type);
+ warn[i].w_sb->s_view.v_dev, warn[i].w_type);
}
}

diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index aefcb77de3fd..7c20afe62014 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -2613,14 +2613,14 @@ static int journal_init_dev(struct super_block *super,

journal->j_dev_bd = NULL;
jdev = SB_ONDISK_JOURNAL_DEVICE(super) ?
- new_decode_dev(SB_ONDISK_JOURNAL_DEVICE(super)) : super->s_dev;
+ new_decode_dev(SB_ONDISK_JOURNAL_DEVICE(super)) : super->s_view.v_dev;

if (bdev_read_only(super->s_bdev))
blkdev_mode = FMODE_READ;

/* there is no "jdev" option and journal is on separate device */
if ((!jdev_name || !jdev_name[0])) {
- if (jdev == super->s_dev)
+ if (jdev == super->s_view.v_dev)
blkdev_mode &= ~FMODE_EXCL;
journal->j_dev_bd = blkdev_get_by_dev(jdev, blkdev_mode,
journal);
@@ -2632,7 +2632,7 @@ static int journal_init_dev(struct super_block *super,
"cannot init journal device '%s': %i",
__bdevname(jdev, b), result);
return result;
- } else if (jdev != super->s_dev)
+ } else if (jdev != super->s_view.v_dev)
set_blocksize(journal->j_dev_bd, super->s_blocksize);

return 0;
diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index eb0b7d3775bb..f9d9d99a32e9 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -433,8 +433,8 @@ static int romfs_statfs(struct dentry *dentry, struct kstatfs *buf)
*/
if (sb->s_bdev)
id = huge_encode_dev(sb->s_bdev->bd_dev);
- else if (sb->s_dev)
- id = huge_encode_dev(sb->s_dev);
+ else if (sb->s_view.v_dev)
+ id = huge_encode_dev(sb->s_view.v_dev);

buf->f_type = ROMFS_MAGIC;
buf->f_namelen = ROMFS_MAXFN;
@@ -510,7 +510,7 @@ static int romfs_fill_super(struct super_block *sb, void *data, int silent)
#ifdef CONFIG_ROMFS_ON_MTD
/* Use same dev ID from the underlying mtdblock device */
if (sb->s_mtd)
- sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, sb->s_mtd->index);
+ sb->s_view.v_dev = MKDEV(MTD_BLOCK_MAJOR, sb->s_mtd->index);
#endif
/* read the image superblock and check it */
rsb = kmalloc(512, GFP_KERNEL);
diff --git a/fs/super.c b/fs/super.c
index 5258a57d410a..dfb5b1c8ef20 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -781,7 +781,7 @@ struct super_block *user_get_super(dev_t dev)
list_for_each_entry(sb, &super_blocks, s_list) {
if (hlist_unhashed(&sb->s_instances))
continue;
- if (sb->s_dev == dev) {
+ if (sb->s_view.v_dev == dev) {
sb->s_count++;
spin_unlock(&sb_lock);
down_read(&sb->s_umount);
@@ -981,14 +981,14 @@ EXPORT_SYMBOL(free_anon_bdev);

int set_anon_super(struct super_block *s, void *data)
{
- return get_anon_bdev(&s->s_dev);
+ return get_anon_bdev(&s->s_view.v_dev);
}

EXPORT_SYMBOL(set_anon_super);

void kill_anon_super(struct super_block *sb)
{
- dev_t dev = sb->s_dev;
+ dev_t dev = sb->s_view.v_dev;
generic_shutdown_super(sb);
free_anon_bdev(dev);
}
@@ -1052,7 +1052,7 @@ EXPORT_SYMBOL(mount_ns);
static int set_bdev_super(struct super_block *s, void *data)
{
s->s_bdev = data;
- s->s_dev = s->s_bdev->bd_dev;
+ s->s_view.v_dev = s->s_bdev->bd_dev;
s->s_bdi = bdi_get(s->s_bdev->bd_bdi);

return 0;
diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h
index 4dc896852bf0..57e6610e29d6 100644
--- a/fs/xfs/scrub/trace.h
+++ b/fs/xfs/scrub/trace.h
@@ -41,7 +41,7 @@ DECLARE_EVENT_CLASS(xfs_scrub_class,
__field(int, error)
),
TP_fast_assign(
- __entry->dev = ip->i_mount->m_super->s_dev;
+ __entry->dev = ip->i_mount->m_super->s_view.v_dev;
__entry->ino = ip->i_ino;
__entry->type = sm->sm_type;
__entry->agno = sm->sm_agno;
@@ -83,7 +83,7 @@ TRACE_EVENT(xfs_scrub_op_error,
__field(void *, ret_ip)
),
TP_fast_assign(
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->agno = agno;
__entry->bno = bno;
@@ -113,7 +113,7 @@ TRACE_EVENT(xfs_scrub_file_op_error,
__field(void *, ret_ip)
),
TP_fast_assign(
- __entry->dev = sc->ip->i_mount->m_super->s_dev;
+ __entry->dev = sc->ip->i_mount->m_super->s_view.v_dev;
__entry->ino = sc->ip->i_ino;
__entry->whichfork = whichfork;
__entry->type = sc->sm->sm_type;
@@ -150,7 +150,7 @@ DECLARE_EVENT_CLASS(xfs_scrub_block_error_class,
agno = XFS_FSB_TO_AGNO(sc->mp, fsbno);
bno = XFS_FSB_TO_AGBNO(sc->mp, fsbno);

- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->agno = agno;
__entry->bno = bno;
@@ -200,7 +200,7 @@ DECLARE_EVENT_CLASS(xfs_scrub_ino_error_class,
XFS_INO_TO_AGINO(sc->mp, ino));
}

- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->ino = ino;
__entry->type = sc->sm->sm_type;
__entry->agno = agno;
@@ -239,7 +239,7 @@ DECLARE_EVENT_CLASS(xfs_scrub_fblock_error_class,
__field(void *, ret_ip)
),
TP_fast_assign(
- __entry->dev = sc->ip->i_mount->m_super->s_dev;
+ __entry->dev = sc->ip->i_mount->m_super->s_view.v_dev;
__entry->ino = sc->ip->i_ino;
__entry->whichfork = whichfork;
__entry->type = sc->sm->sm_type;
@@ -273,7 +273,7 @@ TRACE_EVENT(xfs_scrub_incomplete,
__field(void *, ret_ip)
),
TP_fast_assign(
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->ret_ip = ret_ip;
),
@@ -301,7 +301,7 @@ TRACE_EVENT(xfs_scrub_btree_op_error,
TP_fast_assign(
xfs_fsblock_t fsbno = xfs_scrub_btree_cur_fsbno(cur, level);

- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->btnum = cur->bc_btnum;
__entry->level = level;
@@ -342,7 +342,7 @@ TRACE_EVENT(xfs_scrub_ifork_btree_op_error,
),
TP_fast_assign(
xfs_fsblock_t fsbno = xfs_scrub_btree_cur_fsbno(cur, level);
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->ino = sc->ip->i_ino;
__entry->whichfork = cur->bc_private.b.whichfork;
__entry->type = sc->sm->sm_type;
@@ -384,7 +384,7 @@ TRACE_EVENT(xfs_scrub_btree_error,
),
TP_fast_assign(
xfs_fsblock_t fsbno = xfs_scrub_btree_cur_fsbno(cur, level);
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->btnum = cur->bc_btnum;
__entry->level = level;
@@ -422,7 +422,7 @@ TRACE_EVENT(xfs_scrub_ifork_btree_error,
),
TP_fast_assign(
xfs_fsblock_t fsbno = xfs_scrub_btree_cur_fsbno(cur, level);
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->ino = sc->ip->i_ino;
__entry->whichfork = cur->bc_private.b.whichfork;
__entry->type = sc->sm->sm_type;
@@ -463,7 +463,7 @@ DECLARE_EVENT_CLASS(xfs_scrub_sbtree_class,
TP_fast_assign(
xfs_fsblock_t fsbno = xfs_scrub_btree_cur_fsbno(cur, level);

- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->btnum = cur->bc_btnum;
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
@@ -501,7 +501,7 @@ TRACE_EVENT(xfs_scrub_xref_error,
__field(void *, ret_ip)
),
TP_fast_assign(
- __entry->dev = sc->mp->m_super->s_dev;
+ __entry->dev = sc->mp->m_super->s_view.v_dev;
__entry->type = sc->sm->sm_type;
__entry->error = error;
__entry->ret_ip = ret_ip;
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index 16065fe0bd4d..2d650a11890b 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -114,7 +114,7 @@ DECLARE_EVENT_CLASS(xfs_perag_class,
__field(unsigned long, caller_ip)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->refcount = refcount;
__entry->caller_ip = caller_ip;
@@ -149,7 +149,7 @@ DECLARE_EVENT_CLASS(xfs_ag_class,
__field(xfs_agnumber_t, agno)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
),
TP_printk("dev %d:%d agno %u",
@@ -742,7 +742,7 @@ TRACE_EVENT(xfs_irec_merge_pre,
__field(uint16_t, nholemask)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agino = agino;
__entry->holemask = holemask;
@@ -766,7 +766,7 @@ TRACE_EVENT(xfs_irec_merge_post,
__field(uint16_t, holemask)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agino = agino;
__entry->holemask = holemask;
@@ -868,7 +868,7 @@ DECLARE_EVENT_CLASS(xfs_dquot_class,
__field(unsigned long long, ino_softlimit)
), \
TP_fast_assign(
- __entry->dev = dqp->q_mount->m_super->s_dev;
+ __entry->dev = dqp->q_mount->m_super->s_view.v_dev;
__entry->id = be32_to_cpu(dqp->q_core.d_id);
__entry->flags = dqp->dq_flags;
__entry->nrefs = dqp->q_nrefs;
@@ -947,7 +947,7 @@ DECLARE_EVENT_CLASS(xfs_loggrant_class,
__field(xfs_lsn_t, tail_lsn)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->ocnt = tic->t_ocnt;
__entry->cnt = tic->t_cnt;
__entry->curr_res = tic->t_curr_res;
@@ -1022,7 +1022,7 @@ DECLARE_EVENT_CLASS(xfs_log_item_class,
__field(xfs_lsn_t, lsn)
),
TP_fast_assign(
- __entry->dev = lip->li_mountp->m_super->s_dev;
+ __entry->dev = lip->li_mountp->m_super->s_view.v_dev;
__entry->lip = lip;
__entry->type = lip->li_type;
__entry->flags = lip->li_flags;
@@ -1045,7 +1045,7 @@ TRACE_EVENT(xfs_log_force,
__field(unsigned long, caller_ip)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->lsn = lsn;
__entry->caller_ip = caller_ip;
),
@@ -1075,7 +1075,7 @@ DECLARE_EVENT_CLASS(xfs_ail_class,
__field(xfs_lsn_t, new_lsn)
),
TP_fast_assign(
- __entry->dev = lip->li_mountp->m_super->s_dev;
+ __entry->dev = lip->li_mountp->m_super->s_view.v_dev;
__entry->lip = lip;
__entry->type = lip->li_type;
__entry->flags = lip->li_flags;
@@ -1109,7 +1109,7 @@ TRACE_EVENT(xfs_log_assign_tail_lsn,
__field(xfs_lsn_t, last_sync_lsn)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->new_lsn = new_lsn;
__entry->old_lsn = atomic64_read(&log->l_tail_lsn);
__entry->last_sync_lsn = atomic64_read(&log->l_last_sync_lsn);
@@ -1425,7 +1425,7 @@ DECLARE_EVENT_CLASS(xfs_extent_busy_class,
__field(xfs_extlen_t, len)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -1461,7 +1461,7 @@ TRACE_EVENT(xfs_extent_busy_trim,
__field(xfs_extlen_t, tlen)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -1498,7 +1498,7 @@ TRACE_EVENT(xfs_agf,
__field(unsigned long, caller_ip)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = be32_to_cpu(agf->agf_seqno),
__entry->flags = flags;
__entry->length = be32_to_cpu(agf->agf_length),
@@ -1549,7 +1549,7 @@ TRACE_EVENT(xfs_free_extent,
__field(int, haveright)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -1594,7 +1594,7 @@ DECLARE_EVENT_CLASS(xfs_alloc_class,
__field(xfs_fsblock_t, firstblock)
),
TP_fast_assign(
- __entry->dev = args->mp->m_super->s_dev;
+ __entry->dev = args->mp->m_super->s_view.v_dev;
__entry->agno = args->agno;
__entry->agbno = args->agbno;
__entry->minlen = args->minlen;
@@ -1958,7 +1958,7 @@ TRACE_EVENT(xfs_log_recover,
__field(xfs_daddr_t, tailblk)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->headblk = headblk;
__entry->tailblk = tailblk;
),
@@ -1978,7 +1978,7 @@ TRACE_EVENT(xfs_log_recover_record,
__field(int, pass)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->lsn = be64_to_cpu(rhead->h_lsn);
__entry->len = be32_to_cpu(rhead->h_len);
__entry->num_logops = be32_to_cpu(rhead->h_num_logops);
@@ -2005,7 +2005,7 @@ DECLARE_EVENT_CLASS(xfs_log_recover_item_class,
__field(int, total)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->item = (unsigned long)item;
__entry->tid = trans->r_log_tid;
__entry->lsn = trans->r_lsn;
@@ -2050,7 +2050,7 @@ DECLARE_EVENT_CLASS(xfs_log_recover_buf_item_class,
__field(unsigned int, map_size)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->blkno = buf_f->blf_blkno;
__entry->len = buf_f->blf_len;
__entry->flags = buf_f->blf_flags;
@@ -2097,7 +2097,7 @@ DECLARE_EVENT_CLASS(xfs_log_recover_ino_item_class,
__field(int, boffset)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->ino = in_f->ilf_ino;
__entry->size = in_f->ilf_size;
__entry->fields = in_f->ilf_fields;
@@ -2141,7 +2141,7 @@ DECLARE_EVENT_CLASS(xfs_log_recover_icreate_item_class,
__field(unsigned int, gen)
),
TP_fast_assign(
- __entry->dev = log->l_mp->m_super->s_dev;
+ __entry->dev = log->l_mp->m_super->s_view.v_dev;
__entry->agno = be32_to_cpu(in_f->icl_ag);
__entry->agbno = be32_to_cpu(in_f->icl_agbno);
__entry->count = be32_to_cpu(in_f->icl_count);
@@ -2173,7 +2173,7 @@ DECLARE_EVENT_CLASS(xfs_discard_class,
__field(xfs_extlen_t, len)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -2208,7 +2208,7 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class,
__field(xfs_daddr_t, daddr)
),
TP_fast_assign(
- __entry->dev = cur->bc_mp->m_super->s_dev;
+ __entry->dev = cur->bc_mp->m_super->s_view.v_dev;
__entry->btnum = cur->bc_btnum;
__entry->level = level;
__entry->nlevels = cur->bc_nlevels;
@@ -2245,7 +2245,7 @@ DECLARE_EVENT_CLASS(xfs_defer_class,
__field(char, low)
),
TP_fast_assign(
- __entry->dev = mp ? mp->m_super->s_dev : 0;
+ __entry->dev = mp ? mp->m_super->s_view.v_dev : 0;
__entry->dop = dop;
__entry->committed = dop->dop_committed;
__entry->low = dop->dop_low;
@@ -2272,7 +2272,7 @@ DECLARE_EVENT_CLASS(xfs_defer_error_class,
__field(int, error)
),
TP_fast_assign(
- __entry->dev = mp ? mp->m_super->s_dev : 0;
+ __entry->dev = mp ? mp->m_super->s_view.v_dev : 0;
__entry->dop = dop;
__entry->committed = dop->dop_committed;
__entry->low = dop->dop_low;
@@ -2301,7 +2301,7 @@ DECLARE_EVENT_CLASS(xfs_defer_pending_class,
__field(int, nr)
),
TP_fast_assign(
- __entry->dev = mp ? mp->m_super->s_dev : 0;
+ __entry->dev = mp ? mp->m_super->s_view.v_dev : 0;
__entry->type = dfp->dfp_type->type;
__entry->intent = dfp->dfp_intent;
__entry->committed = dfp->dfp_done != NULL;
@@ -2331,7 +2331,7 @@ DECLARE_EVENT_CLASS(xfs_phys_extent_deferred_class,
__field(xfs_extlen_t, len)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->type = type;
__entry->agbno = agbno;
@@ -2374,7 +2374,7 @@ DECLARE_EVENT_CLASS(xfs_map_extent_deferred_class,
__field(int, op)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->ino = ino;
__entry->agbno = agbno;
@@ -2443,7 +2443,7 @@ DECLARE_EVENT_CLASS(xfs_rmap_class,
__field(unsigned long, flags)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -2481,7 +2481,7 @@ DECLARE_EVENT_CLASS(xfs_ag_error_class,
__field(unsigned long, caller_ip)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->error = error;
__entry->caller_ip = caller_ip;
@@ -2525,7 +2525,7 @@ DECLARE_EVENT_CLASS(xfs_rmapbt_class,
__field(unsigned int, flags)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->len = len;
@@ -2593,7 +2593,7 @@ DECLARE_EVENT_CLASS(xfs_ag_resv_class,
TP_fast_assign(
struct xfs_ag_resv *r = xfs_perag_resv(pag, resv);

- __entry->dev = pag->pag_mount->m_super->s_dev;
+ __entry->dev = pag->pag_mount->m_super->s_view.v_dev;
__entry->agno = pag->pag_agno;
__entry->resv = resv;
__entry->freeblks = pag->pagf_freeblks;
@@ -2651,7 +2651,7 @@ DECLARE_EVENT_CLASS(xfs_ag_btree_lookup_class,
__field(xfs_lookup_t, dir)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->agbno = agbno;
__entry->dir = dir;
@@ -2683,7 +2683,7 @@ DECLARE_EVENT_CLASS(xfs_refcount_extent_class,
__field(xfs_nlink_t, refcount)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->startblock = irec->rc_startblock;
__entry->blockcount = irec->rc_blockcount;
@@ -2717,7 +2717,7 @@ DECLARE_EVENT_CLASS(xfs_refcount_extent_at_class,
__field(xfs_agblock_t, agbno)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->startblock = irec->rc_startblock;
__entry->blockcount = irec->rc_blockcount;
@@ -2755,7 +2755,7 @@ DECLARE_EVENT_CLASS(xfs_refcount_double_extent_class,
__field(xfs_nlink_t, i2_refcount)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->i1_startblock = i1->rc_startblock;
__entry->i1_blockcount = i1->rc_blockcount;
@@ -2800,7 +2800,7 @@ DECLARE_EVENT_CLASS(xfs_refcount_double_extent_at_class,
__field(xfs_agblock_t, agbno)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->i1_startblock = i1->rc_startblock;
__entry->i1_blockcount = i1->rc_blockcount;
@@ -2850,7 +2850,7 @@ DECLARE_EVENT_CLASS(xfs_refcount_triple_extent_class,
__field(xfs_nlink_t, i3_refcount)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->i1_startblock = i1->rc_startblock;
__entry->i1_blockcount = i1->rc_blockcount;
@@ -2943,7 +2943,7 @@ TRACE_EVENT(xfs_refcount_finish_one_leftover,
__field(xfs_extlen_t, new_len)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->agno = agno;
__entry->type = type;
__entry->agbno = agbno;
@@ -3247,7 +3247,7 @@ DECLARE_EVENT_CLASS(xfs_fsmap_class,
__field(unsigned int, flags)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->keydev = new_decode_dev(keydev);
__entry->agno = agno;
__entry->bno = rmap->rm_startblock;
@@ -3288,7 +3288,7 @@ DECLARE_EVENT_CLASS(xfs_getfsmap_class,
__field(uint64_t, flags)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->keydev = new_decode_dev(fsmap->fmr_device);
__entry->block = fsmap->fmr_physical;
__entry->len = fsmap->fmr_length;
@@ -3325,7 +3325,7 @@ TRACE_EVENT(xfs_trans_resv_calc,
__field(int, logflags)
),
TP_fast_assign(
- __entry->dev = mp->m_super->s_dev;
+ __entry->dev = mp->m_super->s_view.v_dev;
__entry->type = type;
__entry->logres = res->tr_logres;
__entry->logcount = res->tr_logcount;
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
index c3d547211d16..be0850fdbe50 100644
--- a/fs/xfs/xfs_trans_dquot.c
+++ b/fs/xfs/xfs_trans_dquot.c
@@ -583,7 +583,7 @@ xfs_quota_warn(

quota_send_warning(make_kqid(&init_user_ns, qtype,
be32_to_cpu(dqp->q_core.d_id)),
- mp->m_super->s_dev, type);
+ mp->m_super->s_view.v_dev, type);
}

/*
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index 500ae412f483..003844d10b86 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -599,7 +599,7 @@ TRACE_EVENT(ext4_discard_blocks,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->blk = blk;
__entry->count = count;
),
@@ -625,7 +625,7 @@ DECLARE_EVENT_CLASS(ext4__mb_new_pa,
),

TP_fast_assign(
- __entry->dev = ac->ac_sb->s_dev;
+ __entry->dev = ac->ac_sb->s_view.v_dev;
__entry->ino = ac->ac_inode->i_ino;
__entry->pa_pstart = pa->pa_pstart;
__entry->pa_lstart = pa->pa_lstart;
@@ -694,7 +694,7 @@ TRACE_EVENT(ext4_mb_release_group_pa,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->pa_pstart = pa->pa_pstart;
__entry->pa_len = pa->pa_len;
),
@@ -737,7 +737,7 @@ TRACE_EVENT(ext4_mb_discard_preallocations,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->needed = needed;
),

@@ -874,7 +874,7 @@ TRACE_EVENT(ext4_sync_file_enter,
TP_fast_assign(
struct dentry *dentry = file->f_path.dentry;

- __entry->dev = dentry->d_sb->s_dev;
+ __entry->dev = dentry->d_sb->s_view.v_dev;
__entry->ino = d_inode(dentry)->i_ino;
__entry->datasync = datasync;
__entry->parent = d_inode(dentry->d_parent)->i_ino;
@@ -921,7 +921,7 @@ TRACE_EVENT(ext4_sync_fs,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->wait = wait;
),

@@ -1078,7 +1078,7 @@ DECLARE_EVENT_CLASS(ext4__mballoc,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->ino = inode ? inode->i_ino : 0;
__entry->result_start = start;
__entry->result_group = group;
@@ -1248,7 +1248,7 @@ DECLARE_EVENT_CLASS(ext4__bitmap_load,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->group = group;
),

@@ -1434,7 +1434,7 @@ TRACE_EVENT(ext4_unlink_enter,
),

TP_fast_assign(
- __entry->dev = dentry->d_sb->s_dev;
+ __entry->dev = dentry->d_sb->s_view.v_dev;
__entry->ino = d_inode(dentry)->i_ino;
__entry->parent = parent->i_ino;
__entry->size = d_inode(dentry)->i_size;
@@ -1458,7 +1458,7 @@ TRACE_EVENT(ext4_unlink_exit,
),

TP_fast_assign(
- __entry->dev = dentry->d_sb->s_dev;
+ __entry->dev = dentry->d_sb->s_view.v_dev;
__entry->ino = d_inode(dentry)->i_ino;
__entry->ret = ret;
),
@@ -1737,7 +1737,7 @@ TRACE_EVENT(ext4_journal_start,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->ip = IP;
__entry->blocks = blocks;
__entry->rsv_blocks = rsv_blocks;
@@ -1760,7 +1760,7 @@ TRACE_EVENT(ext4_journal_start_reserved,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->ip = IP;
__entry->blocks = blocks;
),
@@ -1787,8 +1787,8 @@ DECLARE_EVENT_CLASS(ext4__trim,
),

TP_fast_assign(
- __entry->dev_major = MAJOR(sb->s_dev);
- __entry->dev_minor = MINOR(sb->s_dev);
+ __entry->dev_major = MAJOR(sb->s_view.v_dev);
+ __entry->dev_minor = MINOR(sb->s_view.v_dev);
__entry->group = group;
__entry->start = start;
__entry->len = len;
@@ -1872,7 +1872,7 @@ TRACE_EVENT(ext4_get_implied_cluster_alloc_exit,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->flags = map->m_flags;
__entry->lblk = map->m_lblk;
__entry->pblk = map->m_pblk;
@@ -2390,7 +2390,7 @@ DECLARE_EVENT_CLASS(ext4__es_shrink_enter,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->nr_to_scan = nr_to_scan;
__entry->cache_cnt = cache_cnt;
),
@@ -2424,7 +2424,7 @@ TRACE_EVENT(ext4_es_shrink_scan_exit,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->nr_shrunk = nr_shrunk;
__entry->cache_cnt = cache_cnt;
),
@@ -2499,7 +2499,7 @@ TRACE_EVENT(ext4_es_shrink,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->nr_shrunk = nr_shrunk;
__entry->scan_time = div_u64(scan_time, 1000);
__entry->nr_skipped = nr_skipped;
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index effb2704f3ae..9d67ed3d4dc8 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -265,7 +265,7 @@ TRACE_EVENT(f2fs_sync_fs,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->dirty = is_sbi_flag_set(F2FS_SB(sb), SBI_IS_DIRTY);
__entry->wait = wait;
),
@@ -570,7 +570,7 @@ TRACE_EVENT(f2fs_background_gc,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->wait_ms = wait_ms;
__entry->prefree = prefree;
__entry->free = free;
@@ -608,7 +608,7 @@ TRACE_EVENT(f2fs_gc_begin,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->sync = sync;
__entry->background = background;
__entry->dirty_nodes = dirty_nodes;
@@ -661,7 +661,7 @@ TRACE_EVENT(f2fs_gc_end,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->ret = ret;
__entry->seg_freed = seg_freed;
__entry->sec_freed = sec_freed;
@@ -713,7 +713,7 @@ TRACE_EVENT(f2fs_get_victim,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->type = type;
__entry->gc_type = gc_type;
__entry->alloc_mode = p->alloc_mode;
@@ -1034,7 +1034,7 @@ DECLARE_EVENT_CLASS(f2fs__bio,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->target = bio_dev(bio);
__entry->op = bio_op(bio);
__entry->op_flags = bio->bi_opf;
@@ -1336,7 +1336,7 @@ TRACE_EVENT(f2fs_write_checkpoint,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->reason = reason;
__entry->msg = msg;
),
@@ -1545,7 +1545,7 @@ TRACE_EVENT(f2fs_shrink_extent_tree,
),

TP_fast_assign(
- __entry->dev = sbi->sb->s_dev;
+ __entry->dev = sbi->sb->s_view.v_dev;
__entry->node_cnt = node_cnt;
__entry->tree_cnt = tree_cnt;
),
@@ -1592,7 +1592,7 @@ DECLARE_EVENT_CLASS(f2fs_sync_dirty_inodes,
),

TP_fast_assign(
- __entry->dev = sb->s_dev;
+ __entry->dev = sb->s_view.v_dev;
__entry->type = type;
__entry->count = count;
),
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
index 7a5bfa93f938..242d1cc3b58f 100644
--- a/include/trace/events/writeback.h
+++ b/include/trace/events/writeback.h
@@ -223,7 +223,7 @@ DECLARE_EVENT_CLASS(writeback_work_class,
strncpy(__entry->name,
wb->bdi->dev ? dev_name(wb->bdi->dev) : "(unknown)", 32);
__entry->nr_pages = work->nr_pages;
- __entry->sb_dev = work->sb ? work->sb->s_dev : 0;
+ __entry->sb_dev = work->sb ? work->sb->s_view.v_dev : 0;
__entry->sync_mode = work->sync_mode;
__entry->for_kupdate = work->for_kupdate;
__entry->range_cyclic = work->range_cyclic;
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 7cf4f6dafd5f..724f3b071d62 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -369,7 +369,7 @@ static int __init do_mount_root(char *name, char *fs, int flags, void *data)

sys_chdir("/root");
s = current->fs->pwd.dentry->d_sb;
- ROOT_DEV = s->s_dev;
+ ROOT_DEV = s->s_view.v_dev;
printk(KERN_INFO
"VFS: Mounted root (%s filesystem)%s on device %u:%u.\n",
s->s_type->name,
diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
index b9f571cc6a7f..72b82db95ecf 100644
--- a/kernel/audit_watch.c
+++ b/kernel/audit_watch.c
@@ -368,7 +368,7 @@ static int audit_get_nd(struct audit_watch *watch, struct path *parent)
inode_unlock(d_backing_inode(parent->dentry));
if (d_is_positive(d)) {
/* update watch filter fields */
- watch->dev = d->d_sb->s_dev;
+ watch->dev = d->d_sb->s_view.v_dev;
watch->ino = d_backing_inode(d)->i_ino;
}
dput(d);
diff --git a/net/unix/diag.c b/net/unix/diag.c
index 384c84e83462..26b4486c41da 100644
--- a/net/unix/diag.c
+++ b/net/unix/diag.c
@@ -26,7 +26,7 @@ static int sk_diag_dump_vfs(struct sock *sk, struct sk_buff *nlskb)
if (dentry) {
struct unix_diag_vfs uv = {
.udiag_vfs_ino = d_backing_inode(dentry)->i_ino,
- .udiag_vfs_dev = dentry->d_sb->s_dev,
+ .udiag_vfs_dev = dentry->d_sb->s_view.v_dev,
};

return nla_put(nlskb, UNIX_DIAG_VFS, sizeof(uv), &uv);
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c
index 6ff8c21e4fff..dc7eff734fa9 100644
--- a/security/tomoyo/realpath.c
+++ b/security/tomoyo/realpath.c
@@ -166,7 +166,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, char * const buffer,
goto prepend_filesystem_name;
}
/* Use filesystem name for unnamed devices. */
- if (!MAJOR(sb->s_dev))
+ if (!MAJOR(sb->s_view.v_dev))
goto prepend_filesystem_name;
{
struct inode *inode = d_backing_inode(sb->s_root);
@@ -181,7 +181,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, char * const buffer,
{
char name[64];
int name_len;
- const dev_t dev = sb->s_dev;
+ const dev_t dev = sb->s_view.v_dev;
name[sizeof(name) - 1] = '\0';
snprintf(name, sizeof(name) - 1, "dev(%u,%u):", MAJOR(dev),
MINOR(dev));
--
2.15.1