Merge branch 'for-2.6.38' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.38' of git://linux-nfs.org/~bfields/linux: (62 commits) nfsd4: fix callback restarting nfsd: break lease on unlink, link, and rename nfsd4: break lease on nfsd setattr nfsd: don't support msnfs export option nfsd4: initialize cb_per_client nfsd4: allow restarting callbacks nfsd4: simplify nfsd4_cb_prepare nfsd4: give out delegations more quickly in 4.1 case nfsd4: add helper function to run callbacks nfsd4: make sure sequence flags are set after destroy_session nfsd4: re-probe callback on connection loss nfsd4: set sequence flag when backchannel is down nfsd4: keep finer-grained callback status rpc: allow xprt_class->setup to return a preexisting xprt rpc: keep backchannel xprt as long as server connection rpc: move sk_bc_xprt to svc_xprt nfsd4: allow backchannel recovery nfsd4: support BIND_CONN_TO_SESSION nfsd4: modify session list under cl_lock Documentation: fl_mylease no longer exists ... Fix up conflicts in fs/nfsd/vfs.c with the vfs-scale work. The vfs-scale work touched some msnfs cases, and this merge removes support for that entirely, so the conflict was trivial to resolve.
This commit is contained in:
commit
18bce371ae
38 changed files with 608 additions and 383 deletions
|
@ -1066,7 +1066,6 @@ struct lock_manager_operations {
|
|||
int (*fl_grant)(struct file_lock *, struct file_lock *, int);
|
||||
void (*fl_release_private)(struct file_lock *);
|
||||
void (*fl_break)(struct file_lock *);
|
||||
int (*fl_mylease)(struct file_lock *, struct file_lock *);
|
||||
int (*fl_change)(struct file_lock **, int);
|
||||
};
|
||||
|
||||
|
|
|
@ -65,6 +65,9 @@
|
|||
|
||||
#define NFS4_CDFC4_FORE 0x1
|
||||
#define NFS4_CDFC4_BACK 0x2
|
||||
#define NFS4_CDFC4_BOTH 0x3
|
||||
#define NFS4_CDFC4_FORE_OR_BOTH 0x3
|
||||
#define NFS4_CDFC4_BACK_OR_BOTH 0x7
|
||||
|
||||
#define NFS4_SET_TO_SERVER_TIME 0
|
||||
#define NFS4_SET_TO_CLIENT_TIME 1
|
||||
|
@ -140,6 +143,9 @@
|
|||
#define SEQ4_STATUS_CB_PATH_DOWN_SESSION 0x00000200
|
||||
#define SEQ4_STATUS_BACKCHANNEL_FAULT 0x00000400
|
||||
|
||||
#define NFS4_SECINFO_STYLE4_CURRENT_FH 0
|
||||
#define NFS4_SECINFO_STYLE4_PARENT 1
|
||||
|
||||
#define NFS4_MAX_UINT64 (~(u64)0)
|
||||
|
||||
/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations.
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
/*
|
||||
* include/linux/nfs4_acl.c
|
||||
*
|
||||
* Common NFSv4 ACL handling definitions.
|
||||
*
|
||||
* Copyright (c) 2002 The Regents of the University of Michigan.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Marius Aamodt Eriksen <marius@umich.edu>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef LINUX_NFS4_ACL_H
|
||||
#define LINUX_NFS4_ACL_H
|
||||
|
||||
#include <linux/posix_acl.h>
|
||||
|
||||
/* Maximum ACL we'll accept from client; chosen (somewhat arbitrarily) to
|
||||
* fit in a page: */
|
||||
#define NFS4_ACL_MAX 170
|
||||
|
||||
struct nfs4_acl *nfs4_acl_new(int);
|
||||
int nfs4_acl_get_whotype(char *, u32);
|
||||
int nfs4_acl_write_who(int who, char *p);
|
||||
int nfs4_acl_permission(struct nfs4_acl *acl, uid_t owner, gid_t group,
|
||||
uid_t who, u32 mask);
|
||||
|
||||
#define NFS4_ACL_TYPE_DEFAULT 0x01
|
||||
#define NFS4_ACL_DIR 0x02
|
||||
#define NFS4_ACL_OWNER 0x04
|
||||
|
||||
struct nfs4_acl *nfs4_acl_posix_to_nfsv4(struct posix_acl *,
|
||||
struct posix_acl *, unsigned int flags);
|
||||
int nfs4_acl_nfsv4_to_posix(struct nfs4_acl *, struct posix_acl **,
|
||||
struct posix_acl **, unsigned int flags);
|
||||
|
||||
#endif /* LINUX_NFS4_ACL_H */
|
|
@ -35,7 +35,7 @@
|
|||
#define NFSEXP_NOHIDE 0x0200
|
||||
#define NFSEXP_NOSUBTREECHECK 0x0400
|
||||
#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */
|
||||
#define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect */
|
||||
#define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect; no longer supported */
|
||||
#define NFSEXP_FSID 0x2000
|
||||
#define NFSEXP_CROSSMOUNT 0x4000
|
||||
#define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
/*
|
||||
* include/linux/nfsd_idmap.h
|
||||
*
|
||||
* Mapping of UID to name and vice versa.
|
||||
*
|
||||
* Copyright (c) 2002, 2003 The Regents of the University of
|
||||
* Michigan. All rights reserved.
|
||||
> *
|
||||
* Marius Aamodt Eriksen <marius@umich.edu>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef LINUX_NFSD_IDMAP_H
|
||||
#define LINUX_NFSD_IDMAP_H
|
||||
|
||||
#include <linux/in.h>
|
||||
#include <linux/sunrpc/svc.h>
|
||||
|
||||
/* XXX from linux/nfs_idmap.h */
|
||||
#define IDMAP_NAMESZ 128
|
||||
|
||||
#ifdef CONFIG_NFSD_V4
|
||||
int nfsd_idmap_init(void);
|
||||
void nfsd_idmap_shutdown(void);
|
||||
#else
|
||||
static inline int nfsd_idmap_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void nfsd_idmap_shutdown(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
int nfsd_map_name_to_uid(struct svc_rqst *, const char *, size_t, __u32 *);
|
||||
int nfsd_map_name_to_gid(struct svc_rqst *, const char *, size_t, __u32 *);
|
||||
int nfsd_map_uid_to_name(struct svc_rqst *, __u32, char *);
|
||||
int nfsd_map_gid_to_name(struct svc_rqst *, __u32, char *);
|
||||
|
||||
#endif /* LINUX_NFSD_IDMAP_H */
|
|
@ -256,10 +256,13 @@ static inline time_t get_expiry(char **bpp)
|
|||
return rv - boot.tv_sec;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NFSD_DEPRECATED
|
||||
static inline void sunrpc_invalidate(struct cache_head *h,
|
||||
struct cache_detail *detail)
|
||||
{
|
||||
h->expiry_time = seconds_since_boot() - 1;
|
||||
detail->nextcheck = seconds_since_boot();
|
||||
}
|
||||
#endif /* CONFIG_NFSD_DEPRECATED */
|
||||
|
||||
#endif /* _LINUX_SUNRPC_CACHE_H_ */
|
||||
|
|
|
@ -269,6 +269,7 @@ struct svc_rqst {
|
|||
struct cache_req rq_chandle; /* handle passed to caches for
|
||||
* request delaying
|
||||
*/
|
||||
bool rq_dropme;
|
||||
/* Catering to nfsd */
|
||||
struct auth_domain * rq_client; /* RPC peer info */
|
||||
struct auth_domain * rq_gssclient; /* "gss/"-style peer info */
|
||||
|
|
|
@ -63,7 +63,6 @@ struct svc_xprt {
|
|||
#define XPT_LISTENER 11 /* listening endpoint */
|
||||
#define XPT_CACHE_AUTH 12 /* cache auth info */
|
||||
|
||||
struct svc_pool *xpt_pool; /* current pool iff queued */
|
||||
struct svc_serv *xpt_server; /* service for transport */
|
||||
atomic_t xpt_reserved; /* space on outq that is rsvd */
|
||||
struct mutex xpt_mutex; /* to serialize sending data */
|
||||
|
@ -81,6 +80,7 @@ struct svc_xprt {
|
|||
void *xpt_bc_sid; /* back channel session ID */
|
||||
|
||||
struct net *xpt_net;
|
||||
struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */
|
||||
};
|
||||
|
||||
static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
|
||||
|
|
|
@ -28,7 +28,6 @@ struct svc_sock {
|
|||
/* private TCP part */
|
||||
u32 sk_reclen; /* length of record */
|
||||
u32 sk_tcplen; /* current read length */
|
||||
struct rpc_xprt *sk_bc_xprt; /* NFSv4.1 backchannel xprt */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -321,6 +321,7 @@ void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie);
|
|||
#define XPRT_CLOSING (6)
|
||||
#define XPRT_CONNECTION_ABORT (7)
|
||||
#define XPRT_CONNECTION_CLOSE (8)
|
||||
#define XPRT_INITIALIZED (9)
|
||||
|
||||
static inline void xprt_set_connected(struct rpc_xprt *xprt)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue