NFS: Fix a number of sparse warnings
Fix a number of "warning: symbol 'foo' was not declared. Should it be static?" conditions. Fix 2 cases of "warning: Using plain integer as NULL pointer" fs/nfs/delegation.c:263:31: warning: restricted fmode_t degrades to integer - We want to allow upgrades to a WRITE delegation, but should otherwise consider servers that hand out duplicate delegations to be borken. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Родитель
5ffaf85541
Коммит
17280175c5
|
@ -101,7 +101,7 @@ nfs4_callback_svc(void *vrqstp)
|
||||||
/*
|
/*
|
||||||
* Prepare to bring up the NFSv4 callback service
|
* Prepare to bring up the NFSv4 callback service
|
||||||
*/
|
*/
|
||||||
struct svc_rqst *
|
static struct svc_rqst *
|
||||||
nfs4_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
|
nfs4_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -172,7 +172,7 @@ nfs41_callback_svc(void *vrqstp)
|
||||||
/*
|
/*
|
||||||
* Bring up the NFSv4.1 callback service
|
* Bring up the NFSv4.1 callback service
|
||||||
*/
|
*/
|
||||||
struct svc_rqst *
|
static struct svc_rqst *
|
||||||
nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
|
nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
|
||||||
{
|
{
|
||||||
struct svc_rqst *rqstp;
|
struct svc_rqst *rqstp;
|
||||||
|
|
|
@ -443,9 +443,8 @@ static int nfs_sockaddr_cmp(const struct sockaddr *sa1,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Common match routine for v4.0 and v4.1 callback services */
|
/* Common match routine for v4.0 and v4.1 callback services */
|
||||||
bool
|
static bool nfs4_cb_match_client(const struct sockaddr *addr,
|
||||||
nfs4_cb_match_client(const struct sockaddr *addr, struct nfs_client *clp,
|
struct nfs_client *clp, u32 minorversion)
|
||||||
u32 minorversion)
|
|
||||||
{
|
{
|
||||||
struct sockaddr *clap = (struct sockaddr *)&clp->cl_addr;
|
struct sockaddr *clap = (struct sockaddr *)&clp->cl_addr;
|
||||||
|
|
||||||
|
|
|
@ -256,11 +256,14 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
|
||||||
/*
|
/*
|
||||||
* Deal with broken servers that hand out two
|
* Deal with broken servers that hand out two
|
||||||
* delegations for the same file.
|
* delegations for the same file.
|
||||||
|
* Allow for upgrades to a WRITE delegation, but
|
||||||
|
* nothing else.
|
||||||
*/
|
*/
|
||||||
dfprintk(FILE, "%s: server %s handed out "
|
dfprintk(FILE, "%s: server %s handed out "
|
||||||
"a duplicate delegation!\n",
|
"a duplicate delegation!\n",
|
||||||
__func__, clp->cl_hostname);
|
__func__, clp->cl_hostname);
|
||||||
if (delegation->type <= old_delegation->type) {
|
if (delegation->type == old_delegation->type ||
|
||||||
|
!(delegation->type & FMODE_WRITE)) {
|
||||||
freeme = delegation;
|
freeme = delegation;
|
||||||
delegation = NULL;
|
delegation = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include <linux/sunrpc/clnt.h>
|
#include <linux/sunrpc/clnt.h>
|
||||||
#include <linux/dns_resolver.h>
|
#include <linux/dns_resolver.h>
|
||||||
|
#include "dns_resolve.h"
|
||||||
|
|
||||||
ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen,
|
ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen,
|
||||||
struct sockaddr *sa, size_t salen)
|
struct sockaddr *sa, size_t salen)
|
||||||
|
|
|
@ -54,8 +54,8 @@
|
||||||
|
|
||||||
/* Default cache timeout is 10 minutes */
|
/* Default cache timeout is 10 minutes */
|
||||||
unsigned int nfs_idmap_cache_timeout = 600;
|
unsigned int nfs_idmap_cache_timeout = 600;
|
||||||
const struct cred *id_resolver_cache;
|
static const struct cred *id_resolver_cache;
|
||||||
struct key_type key_type_id_resolver_legacy;
|
static struct key_type key_type_id_resolver_legacy;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -160,7 +160,7 @@ static int nfs_map_numeric_to_string(__u32 id, char *buf, size_t buflen)
|
||||||
return snprintf(buf, buflen, "%u", id);
|
return snprintf(buf, buflen, "%u", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct key_type key_type_id_resolver = {
|
static struct key_type key_type_id_resolver = {
|
||||||
.name = "id_resolver",
|
.name = "id_resolver",
|
||||||
.instantiate = user_instantiate,
|
.instantiate = user_instantiate,
|
||||||
.match = user_match,
|
.match = user_match,
|
||||||
|
@ -381,7 +381,7 @@ static const struct rpc_pipe_ops idmap_upcall_ops = {
|
||||||
.destroy_msg = idmap_pipe_destroy_msg,
|
.destroy_msg = idmap_pipe_destroy_msg,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct key_type key_type_id_resolver_legacy = {
|
static struct key_type key_type_id_resolver_legacy = {
|
||||||
.name = "id_resolver",
|
.name = "id_resolver",
|
||||||
.instantiate = user_instantiate,
|
.instantiate = user_instantiate,
|
||||||
.match = user_match,
|
.match = user_match,
|
||||||
|
|
|
@ -192,7 +192,7 @@ struct posix_acl *nfs3_proc_getacl(struct inode *inode, int type)
|
||||||
.pages = pages,
|
.pages = pages,
|
||||||
};
|
};
|
||||||
struct nfs3_getaclres res = {
|
struct nfs3_getaclres res = {
|
||||||
0
|
NULL,
|
||||||
};
|
};
|
||||||
struct rpc_message msg = {
|
struct rpc_message msg = {
|
||||||
.rpc_argp = &args,
|
.rpc_argp = &args,
|
||||||
|
|
|
@ -323,21 +323,21 @@ static void filelayout_commit_release(void *data)
|
||||||
nfs_commitdata_release(wdata);
|
nfs_commitdata_release(wdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct rpc_call_ops filelayout_read_call_ops = {
|
static const struct rpc_call_ops filelayout_read_call_ops = {
|
||||||
.rpc_call_prepare = filelayout_read_prepare,
|
.rpc_call_prepare = filelayout_read_prepare,
|
||||||
.rpc_call_done = filelayout_read_call_done,
|
.rpc_call_done = filelayout_read_call_done,
|
||||||
.rpc_count_stats = filelayout_read_count_stats,
|
.rpc_count_stats = filelayout_read_count_stats,
|
||||||
.rpc_release = filelayout_read_release,
|
.rpc_release = filelayout_read_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rpc_call_ops filelayout_write_call_ops = {
|
static const struct rpc_call_ops filelayout_write_call_ops = {
|
||||||
.rpc_call_prepare = filelayout_write_prepare,
|
.rpc_call_prepare = filelayout_write_prepare,
|
||||||
.rpc_call_done = filelayout_write_call_done,
|
.rpc_call_done = filelayout_write_call_done,
|
||||||
.rpc_count_stats = filelayout_write_count_stats,
|
.rpc_count_stats = filelayout_write_count_stats,
|
||||||
.rpc_release = filelayout_write_release,
|
.rpc_release = filelayout_write_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rpc_call_ops filelayout_commit_call_ops = {
|
static const struct rpc_call_ops filelayout_commit_call_ops = {
|
||||||
.rpc_call_prepare = filelayout_write_prepare,
|
.rpc_call_prepare = filelayout_write_prepare,
|
||||||
.rpc_call_done = filelayout_write_call_done,
|
.rpc_call_done = filelayout_write_call_done,
|
||||||
.rpc_count_stats = filelayout_write_count_stats,
|
.rpc_count_stats = filelayout_write_count_stats,
|
||||||
|
@ -723,7 +723,7 @@ filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
|
||||||
return (p_stripe == r_stripe);
|
return (p_stripe == r_stripe);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio,
|
filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio,
|
||||||
struct nfs_page *req)
|
struct nfs_page *req)
|
||||||
{
|
{
|
||||||
|
@ -740,7 +740,7 @@ filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio,
|
||||||
nfs_pageio_reset_read_mds(pgio);
|
nfs_pageio_reset_read_mds(pgio);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio,
|
filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio,
|
||||||
struct nfs_page *req)
|
struct nfs_page *req)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
* - incremented when a device id maps a data server already in the cache.
|
* - incremented when a device id maps a data server already in the cache.
|
||||||
* - decremented when deviceid is removed from the cache.
|
* - decremented when deviceid is removed from the cache.
|
||||||
*/
|
*/
|
||||||
DEFINE_SPINLOCK(nfs4_ds_cache_lock);
|
static DEFINE_SPINLOCK(nfs4_ds_cache_lock);
|
||||||
static LIST_HEAD(nfs4_data_server_cache);
|
static LIST_HEAD(nfs4_data_server_cache);
|
||||||
|
|
||||||
/* Debug routines */
|
/* Debug routines */
|
||||||
|
@ -108,7 +108,7 @@ same_sockaddr(struct sockaddr *addr1, struct sockaddr *addr2)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
static bool
|
||||||
_same_data_server_addrs_locked(const struct list_head *dsaddrs1,
|
_same_data_server_addrs_locked(const struct list_head *dsaddrs1,
|
||||||
const struct list_head *dsaddrs2)
|
const struct list_head *dsaddrs2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -677,12 +677,12 @@ static void nfs41_call_sync_done(struct rpc_task *task, void *calldata)
|
||||||
nfs41_sequence_done(task, data->seq_res);
|
nfs41_sequence_done(task, data->seq_res);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct rpc_call_ops nfs41_call_sync_ops = {
|
static const struct rpc_call_ops nfs41_call_sync_ops = {
|
||||||
.rpc_call_prepare = nfs41_call_sync_prepare,
|
.rpc_call_prepare = nfs41_call_sync_prepare,
|
||||||
.rpc_call_done = nfs41_call_sync_done,
|
.rpc_call_done = nfs41_call_sync_done,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rpc_call_ops nfs41_call_priv_sync_ops = {
|
static const struct rpc_call_ops nfs41_call_priv_sync_ops = {
|
||||||
.rpc_call_prepare = nfs41_call_priv_sync_prepare,
|
.rpc_call_prepare = nfs41_call_priv_sync_prepare,
|
||||||
.rpc_call_done = nfs41_call_sync_done,
|
.rpc_call_done = nfs41_call_sync_done,
|
||||||
};
|
};
|
||||||
|
@ -4770,7 +4770,7 @@ static void nfs4_release_lockowner_release(void *calldata)
|
||||||
kfree(calldata);
|
kfree(calldata);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct rpc_call_ops nfs4_release_lockowner_ops = {
|
static const struct rpc_call_ops nfs4_release_lockowner_ops = {
|
||||||
.rpc_release = nfs4_release_lockowner_release,
|
.rpc_release = nfs4_release_lockowner_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4910,7 +4910,8 @@ static int _nfs4_proc_secinfo(struct inode *dir, const struct qstr *name, struct
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nfs4_proc_secinfo(struct inode *dir, const struct qstr *name, struct nfs4_secinfo_flavors *flavors)
|
static int nfs4_proc_secinfo(struct inode *dir, const struct qstr *name,
|
||||||
|
struct nfs4_secinfo_flavors *flavors)
|
||||||
{
|
{
|
||||||
struct nfs4_exception exception = { };
|
struct nfs4_exception exception = { };
|
||||||
int err;
|
int err;
|
||||||
|
@ -5096,7 +5097,7 @@ static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata)
|
||||||
dprintk("<-- %s\n", __func__);
|
dprintk("<-- %s\n", __func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct rpc_call_ops nfs4_get_lease_time_ops = {
|
static const struct rpc_call_ops nfs4_get_lease_time_ops = {
|
||||||
.rpc_call_prepare = nfs4_get_lease_time_prepare,
|
.rpc_call_prepare = nfs4_get_lease_time_prepare,
|
||||||
.rpc_call_done = nfs4_get_lease_time_done,
|
.rpc_call_done = nfs4_get_lease_time_done,
|
||||||
};
|
};
|
||||||
|
@ -6319,7 +6320,7 @@ static bool nfs4_match_stateid(const nfs4_stateid *s1,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct nfs4_state_recovery_ops nfs40_reboot_recovery_ops = {
|
static const struct nfs4_state_recovery_ops nfs40_reboot_recovery_ops = {
|
||||||
.owner_flag_bit = NFS_OWNER_RECLAIM_REBOOT,
|
.owner_flag_bit = NFS_OWNER_RECLAIM_REBOOT,
|
||||||
.state_flag_bit = NFS_STATE_RECLAIM_REBOOT,
|
.state_flag_bit = NFS_STATE_RECLAIM_REBOOT,
|
||||||
.recover_open = nfs4_open_reclaim,
|
.recover_open = nfs4_open_reclaim,
|
||||||
|
@ -6329,7 +6330,7 @@ struct nfs4_state_recovery_ops nfs40_reboot_recovery_ops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_NFS_V4_1)
|
#if defined(CONFIG_NFS_V4_1)
|
||||||
struct nfs4_state_recovery_ops nfs41_reboot_recovery_ops = {
|
static const struct nfs4_state_recovery_ops nfs41_reboot_recovery_ops = {
|
||||||
.owner_flag_bit = NFS_OWNER_RECLAIM_REBOOT,
|
.owner_flag_bit = NFS_OWNER_RECLAIM_REBOOT,
|
||||||
.state_flag_bit = NFS_STATE_RECLAIM_REBOOT,
|
.state_flag_bit = NFS_STATE_RECLAIM_REBOOT,
|
||||||
.recover_open = nfs4_open_reclaim,
|
.recover_open = nfs4_open_reclaim,
|
||||||
|
@ -6340,7 +6341,7 @@ struct nfs4_state_recovery_ops nfs41_reboot_recovery_ops = {
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_NFS_V4_1 */
|
#endif /* CONFIG_NFS_V4_1 */
|
||||||
|
|
||||||
struct nfs4_state_recovery_ops nfs40_nograce_recovery_ops = {
|
static const struct nfs4_state_recovery_ops nfs40_nograce_recovery_ops = {
|
||||||
.owner_flag_bit = NFS_OWNER_RECLAIM_NOGRACE,
|
.owner_flag_bit = NFS_OWNER_RECLAIM_NOGRACE,
|
||||||
.state_flag_bit = NFS_STATE_RECLAIM_NOGRACE,
|
.state_flag_bit = NFS_STATE_RECLAIM_NOGRACE,
|
||||||
.recover_open = nfs4_open_expired,
|
.recover_open = nfs4_open_expired,
|
||||||
|
@ -6350,7 +6351,7 @@ struct nfs4_state_recovery_ops nfs40_nograce_recovery_ops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_NFS_V4_1)
|
#if defined(CONFIG_NFS_V4_1)
|
||||||
struct nfs4_state_recovery_ops nfs41_nograce_recovery_ops = {
|
static const struct nfs4_state_recovery_ops nfs41_nograce_recovery_ops = {
|
||||||
.owner_flag_bit = NFS_OWNER_RECLAIM_NOGRACE,
|
.owner_flag_bit = NFS_OWNER_RECLAIM_NOGRACE,
|
||||||
.state_flag_bit = NFS_STATE_RECLAIM_NOGRACE,
|
.state_flag_bit = NFS_STATE_RECLAIM_NOGRACE,
|
||||||
.recover_open = nfs41_open_expired,
|
.recover_open = nfs41_open_expired,
|
||||||
|
@ -6360,14 +6361,14 @@ struct nfs4_state_recovery_ops nfs41_nograce_recovery_ops = {
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_NFS_V4_1 */
|
#endif /* CONFIG_NFS_V4_1 */
|
||||||
|
|
||||||
struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = {
|
static const struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = {
|
||||||
.sched_state_renewal = nfs4_proc_async_renew,
|
.sched_state_renewal = nfs4_proc_async_renew,
|
||||||
.get_state_renewal_cred_locked = nfs4_get_renew_cred_locked,
|
.get_state_renewal_cred_locked = nfs4_get_renew_cred_locked,
|
||||||
.renew_lease = nfs4_proc_renew,
|
.renew_lease = nfs4_proc_renew,
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_NFS_V4_1)
|
#if defined(CONFIG_NFS_V4_1)
|
||||||
struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = {
|
static const struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = {
|
||||||
.sched_state_renewal = nfs41_proc_async_sequence,
|
.sched_state_renewal = nfs41_proc_async_sequence,
|
||||||
.get_state_renewal_cred_locked = nfs4_get_machine_cred_locked,
|
.get_state_renewal_cred_locked = nfs4_get_machine_cred_locked,
|
||||||
.renew_lease = nfs4_proc_sequence,
|
.renew_lease = nfs4_proc_sequence,
|
||||||
|
|
|
@ -876,7 +876,8 @@ int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl)
|
||||||
if (fl->fl_flags & FL_POSIX)
|
if (fl->fl_flags & FL_POSIX)
|
||||||
lsp = nfs4_get_lock_state(state, fl->fl_owner, 0, NFS4_POSIX_LOCK_TYPE);
|
lsp = nfs4_get_lock_state(state, fl->fl_owner, 0, NFS4_POSIX_LOCK_TYPE);
|
||||||
else if (fl->fl_flags & FL_FLOCK)
|
else if (fl->fl_flags & FL_FLOCK)
|
||||||
lsp = nfs4_get_lock_state(state, 0, fl->fl_pid, NFS4_FLOCK_LOCK_TYPE);
|
lsp = nfs4_get_lock_state(state, NULL, fl->fl_pid,
|
||||||
|
NFS4_FLOCK_LOCK_TYPE);
|
||||||
else
|
else
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (lsp == NULL)
|
if (lsp == NULL)
|
||||||
|
|
|
@ -156,7 +156,7 @@ last_byte_offset(u64 start, u64 len)
|
||||||
return end > start ? end - 1 : NFS4_MAX_UINT64;
|
return end > start ? end - 1 : NFS4_MAX_UINT64;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _fix_verify_io_params(struct pnfs_layout_segment *lseg,
|
static void _fix_verify_io_params(struct pnfs_layout_segment *lseg,
|
||||||
struct page ***p_pages, unsigned *p_pgbase,
|
struct page ***p_pages, unsigned *p_pgbase,
|
||||||
u64 offset, unsigned long count)
|
u64 offset, unsigned long count)
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,7 +92,7 @@ _lookup_deviceid(const struct pnfs_layoutdriver_type *ld,
|
||||||
* @clp nfs_client associated with deviceid
|
* @clp nfs_client associated with deviceid
|
||||||
* @id deviceid to look up
|
* @id deviceid to look up
|
||||||
*/
|
*/
|
||||||
struct nfs4_deviceid_node *
|
static struct nfs4_deviceid_node *
|
||||||
_find_get_deviceid(const struct pnfs_layoutdriver_type *ld,
|
_find_get_deviceid(const struct pnfs_layoutdriver_type *ld,
|
||||||
const struct nfs_client *clp, const struct nfs4_deviceid *id,
|
const struct nfs_client *clp, const struct nfs4_deviceid *id,
|
||||||
long hash)
|
long hash)
|
||||||
|
|
|
@ -108,7 +108,7 @@ static void nfs_async_unlink_release(void *calldata)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_NFS_V4_1)
|
#if defined(CONFIG_NFS_V4_1)
|
||||||
void nfs_unlink_prepare(struct rpc_task *task, void *calldata)
|
static void nfs_unlink_prepare(struct rpc_task *task, void *calldata)
|
||||||
{
|
{
|
||||||
struct nfs_unlinkdata *data = calldata;
|
struct nfs_unlinkdata *data = calldata;
|
||||||
struct nfs_server *server = NFS_SERVER(data->dir);
|
struct nfs_server *server = NFS_SERVER(data->dir);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче