@@ -1337,7 +1337,7 @@ static int nfs_volume_list_show(struct seq_file *m, void *v)
clp = server->nfs_client;
snprintf(dev, sizeof(dev), "%u:%u",
- MAJOR(server->s_dev), MINOR(server->s_dev));
+ MAJOR(server->super->s_dev), MINOR(server->super->s_dev));
snprintf(fsid, sizeof(fsid), "%llx:%llx",
(unsigned long long) server->fsid.major,
@@ -6763,7 +6763,7 @@ static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock
goto out;
lsp = request->fl_u.nfs4_fl.owner;
arg.lock_owner.id = lsp->ls_seqid.owner_id;
- arg.lock_owner.s_dev = server->s_dev;
+ arg.lock_owner.s_dev = server->super->s_dev;
status = nfs4_call_sync(server->client, server, &msg, &arg.seq_args, &res.seq_res, 1);
switch (status) {
case 0:
@@ -7088,7 +7088,7 @@ static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl,
goto out_free_seqid;
p->arg.lock_owner.clientid = server->nfs_client->cl_clientid;
p->arg.lock_owner.id = lsp->ls_seqid.owner_id;
- p->arg.lock_owner.s_dev = server->s_dev;
+ p->arg.lock_owner.s_dev = server->super->s_dev;
p->res.lock_seqid = p->arg.lock_seqid;
p->lsp = lsp;
p->server = server;
@@ -7475,7 +7475,7 @@ nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
.inode = state->inode,
.owner = { .clientid = clp->cl_clientid,
.id = lsp->ls_seqid.owner_id,
- .s_dev = server->s_dev },
+ .s_dev = server->super->s_dev },
};
int status;
@@ -7689,7 +7689,7 @@ nfs4_release_lockowner(struct nfs_server *server, struct nfs4_lock_state *lsp)
data->server = server;
data->args.lock_owner.clientid = server->nfs_client->cl_clientid;
data->args.lock_owner.id = lsp->ls_seqid.owner_id;
- data->args.lock_owner.s_dev = server->s_dev;
+ data->args.lock_owner.s_dev = server->super->s_dev;
msg.rpc_argp = &data->args;
msg.rpc_resp = &data->res;
@@ -945,7 +945,7 @@ TRACE_EVENT(nfs4_delegreturn_exit,
),
TP_fast_assign(
- __entry->dev = res->server->s_dev;
+ __entry->dev = res->server->super->s_dev;
__entry->fhandle = nfs_fhandle_hash(args->fhandle);
__entry->error = error < 0 ? -error : 0;
__entry->stateid_seq =
@@ -1269,7 +1269,7 @@ DECLARE_EVENT_CLASS(nfs4_getattr_event,
),
TP_fast_assign(
- __entry->dev = server->s_dev;
+ __entry->dev = server->super->s_dev;
__entry->valid = fattr->valid;
__entry->fhandle = nfs_fhandle_hash(fhandle);
__entry->fileid = (fattr->valid & NFS_ATTR_FATTR_FILEID) ? fattr->fileid : 0;
@@ -1966,7 +1966,7 @@ DECLARE_EVENT_CLASS(nfs4_deviceid_status,
),
TP_fast_assign(
- __entry->dev = server->s_dev;
+ __entry->dev = server->super->s_dev;
__entry->status = status;
__assign_str(dstaddr, server->nfs_client->cl_hostname);
memcpy(__entry->deviceid, deviceid->data,
@@ -1420,7 +1420,7 @@ static inline void encode_openhdr(struct xdr_stream *xdr, const struct nfs_opena
p = xdr_encode_hyper(p, arg->clientid);
*p++ = cpu_to_be32(24);
p = xdr_encode_opaque_fixed(p, "open id:", 8);
- *p++ = cpu_to_be32(arg->server->s_dev);
+ *p++ = cpu_to_be32(arg->server->super->s_dev);
*p++ = cpu_to_be32(arg->id.uniquifier);
xdr_encode_hyper(p, arg->id.create_time);
}
@@ -1130,13 +1130,9 @@ static int nfs_compare_mount_options(const struct super_block *s, const struct n
static int nfs_set_super(struct super_block *s, struct fs_context *fc)
{
struct nfs_server *server = fc->s_fs_info;
- int ret;
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;
- return ret;
+ return set_anon_super(s, server);
}
static int nfs_compare_super_address(struct nfs_server *server1,
@@ -1292,8 +1288,8 @@ int nfs_get_tree_common(struct fs_context *fc)
nfs_free_server(server);
server = NULL;
} else {
- error = super_setup_bdi_name(s, "%u:%u", MAJOR(server->s_dev),
- MINOR(server->s_dev));
+ error = super_setup_bdi_name(s, "%u:%u", MAJOR(s->s_dev),
+ MINOR(s->s_dev));
if (error)
goto error_splat_super;
s->s_bdi->io_pages = server->rpages;
@@ -190,7 +190,6 @@ struct nfs_server {
struct timespec64 time_delta; /* smallest time granularity */
unsigned long mount_time; /* when this fs was mounted */
struct super_block *super; /* VFS super block */
- dev_t s_dev; /* superblock dev numbers */
struct nfs_auth_info auth_info; /* parsed auth flavors */
#ifdef CONFIG_NFS_FSCACHE
Don't duplicate the dev_t in the nfs_server structure given that it can be trivially retrieved from the super_block. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/nfs/client.c | 2 +- fs/nfs/nfs4proc.c | 8 ++++---- fs/nfs/nfs4trace.h | 6 +++--- fs/nfs/nfs4xdr.c | 2 +- fs/nfs/super.c | 10 +++------- include/linux/nfs_fs_sb.h | 1 - 6 files changed, 12 insertions(+), 17 deletions(-)