diff options
author | Benny Halevy <bhalevy@panasas.com> | 2011-05-20 07:47:33 -0400 |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2011-05-29 13:50:42 -0400 |
commit | 1775bc342c6eacd6304493cbb2e0cda1a0182246 (patch) | |
tree | b0a884a41f565a41957524146ff6ee51b2b7db7b /fs/nfs/nfs4filelayout.c | |
parent | a1eaecbc4c8307e27772d6584ef85a2e93250661 (diff) |
NFSv4.1: purge deviceid cache on nfs_free_client
Use the pnfs_layoutdriver_type both as a qualifier for the deviceid,
distinguishing deviceid from different layout types on the server,
and for freeing the layout-driver allocated structure containing the
nfs4_deviceid_node.
[BUG in _deviceid_purge_client]
[layout_driver MUST set free_deviceid_node if using dev-cache]
[let ver < 4.1 compile]
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
[removed EXPORT_SYMBOL_GPL(nfs4_deviceid_purge_client)]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Diffstat (limited to 'fs/nfs/nfs4filelayout.c')
-rw-r--r-- | fs/nfs/nfs4filelayout.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c index 4c67a6f6519d..cd289d9b7de7 100644 --- a/fs/nfs/nfs4filelayout.c +++ b/fs/nfs/nfs4filelayout.c | |||
@@ -862,6 +862,12 @@ filelayout_commit_pagelist(struct inode *inode, struct list_head *mds_pages, | |||
862 | return -ENOMEM; | 862 | return -ENOMEM; |
863 | } | 863 | } |
864 | 864 | ||
865 | static void | ||
866 | filelayout_free_deveiceid_node(struct nfs4_deviceid_node *d) | ||
867 | { | ||
868 | nfs4_fl_free_deviceid(container_of(d, struct nfs4_file_layout_dsaddr, id_node)); | ||
869 | } | ||
870 | |||
865 | static struct pnfs_layoutdriver_type filelayout_type = { | 871 | static struct pnfs_layoutdriver_type filelayout_type = { |
866 | .id = LAYOUT_NFSV4_1_FILES, | 872 | .id = LAYOUT_NFSV4_1_FILES, |
867 | .name = "LAYOUT_NFSV4_1_FILES", | 873 | .name = "LAYOUT_NFSV4_1_FILES", |
@@ -874,6 +880,7 @@ static struct pnfs_layoutdriver_type filelayout_type = { | |||
874 | .commit_pagelist = filelayout_commit_pagelist, | 880 | .commit_pagelist = filelayout_commit_pagelist, |
875 | .read_pagelist = filelayout_read_pagelist, | 881 | .read_pagelist = filelayout_read_pagelist, |
876 | .write_pagelist = filelayout_write_pagelist, | 882 | .write_pagelist = filelayout_write_pagelist, |
883 | .free_deviceid_node = filelayout_free_deveiceid_node, | ||
877 | }; | 884 | }; |
878 | 885 | ||
879 | static int __init nfs4filelayout_init(void) | 886 | static int __init nfs4filelayout_init(void) |