NFS: Store the file system "fsid" value in the NFS super block.
This should enable us to detect if we are crossing a mountpoint in the case where the server is exporting "nohide" mounts. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
@@ -16,8 +16,6 @@
|
||||
#include <linux/rwsem.h>
|
||||
#include <linux/wait.h>
|
||||
|
||||
#include <linux/nfs_fs_sb.h>
|
||||
|
||||
#include <linux/sunrpc/debug.h>
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/sunrpc/clnt.h>
|
||||
@@ -27,6 +25,9 @@
|
||||
#include <linux/nfs3.h>
|
||||
#include <linux/nfs4.h>
|
||||
#include <linux/nfs_xdr.h>
|
||||
|
||||
#include <linux/nfs_fs_sb.h>
|
||||
|
||||
#include <linux/rwsem.h>
|
||||
#include <linux/mempool.h>
|
||||
|
||||
|
@@ -35,6 +35,7 @@ struct nfs_server {
|
||||
char * hostname; /* remote hostname */
|
||||
struct nfs_fh fh;
|
||||
struct sockaddr_in addr;
|
||||
struct nfs_fsid fsid;
|
||||
unsigned long mount_time; /* when this fs was mounted */
|
||||
#ifdef CONFIG_NFS_V4
|
||||
/* Our own IP address, as a null-terminated string.
|
||||
|
@@ -13,7 +13,6 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/nfs_fs_sb.h>
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/nfs_xdr.h>
|
||||
|
||||
|
@@ -14,11 +14,19 @@
|
||||
#define NFS_DEF_FILE_IO_SIZE (4096U)
|
||||
#define NFS_MIN_FILE_IO_SIZE (1024U)
|
||||
|
||||
struct nfs4_fsid {
|
||||
__u64 major;
|
||||
__u64 minor;
|
||||
struct nfs_fsid {
|
||||
uint64_t major;
|
||||
uint64_t minor;
|
||||
};
|
||||
|
||||
/*
|
||||
* Helper for checking equality between 2 fsids.
|
||||
*/
|
||||
static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b)
|
||||
{
|
||||
return a->major == b->major && a->minor == b->minor;
|
||||
}
|
||||
|
||||
struct nfs_fattr {
|
||||
unsigned short valid; /* which fields are valid */
|
||||
__u64 pre_size; /* pre_op_attr.size */
|
||||
@@ -40,10 +48,7 @@ struct nfs_fattr {
|
||||
} nfs3;
|
||||
} du;
|
||||
dev_t rdev;
|
||||
union {
|
||||
__u64 nfs3; /* also nfs2 */
|
||||
struct nfs4_fsid nfs4;
|
||||
} fsid_u;
|
||||
struct nfs_fsid fsid;
|
||||
__u64 fileid;
|
||||
struct timespec atime;
|
||||
struct timespec mtime;
|
||||
|
Reference in New Issue
Block a user