diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-03-09 14:48:32 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-03-27 12:32:24 -0400 |
commit | df52699e4fcefe30ebe4f1db48bd161254a0b102 (patch) | |
tree | 7b590d25515d0fa5bbbe5c48e76a0857a73e10b0 /fs/nfs/pnfs.h | |
parent | 4e59080397faadee59d39ffa2116dc8607adc9c9 (diff) | |
download | op-kernel-dev-df52699e4fcefe30ebe4f1db48bd161254a0b102.zip op-kernel-dev-df52699e4fcefe30ebe4f1db48bd161254a0b102.tar.gz |
NFSv4.1: Don't cache deviceids that have no notifications
The spec says that once all layouts that reference a given deviceid
have been returned, then we are only allowed to continue to cache
the deviceid if the metadata server supports notifications.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/pnfs.h')
-rw-r--r-- | fs/nfs/pnfs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h index a1fc16c..b5654e8 100644 --- a/fs/nfs/pnfs.h +++ b/fs/nfs/pnfs.h @@ -203,6 +203,7 @@ struct pnfs_device { struct page **pages; unsigned int pgbase; unsigned int pglen; /* reply buffer length */ + unsigned char nocache : 1;/* May not be cached */ }; #define NFS4_PNFS_GETDEVLIST_MAXNUM 16 @@ -291,6 +292,7 @@ void pnfs_error_mark_layout_for_return(struct inode *inode, enum { NFS_DEVICEID_INVALID = 0, /* set when MDS clientid recalled */ NFS_DEVICEID_UNAVAILABLE, /* device temporarily unavailable */ + NFS_DEVICEID_NOCACHE, /* device may not be cached */ }; /* pnfs_dev.c */ |