[PATCH 07/13] SQUASHME pnfs_submit: remove struct pnfs_mount_type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Andy Adamson <andros@xxxxxxxxxx>

The pnfs_mount_type structure was used to store per layout type device id
caches. It is no longer needed with the generic device id cache in struct
nfs_client.

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
---
 fs/nfs/nfs4filelayout.c   |   40 +++++++---------------------------------
 fs/nfs/pnfs.c             |    8 ++------
 include/linux/nfs4_pnfs.h |   15 +--------------
 include/linux/nfs_fs_sb.h |    2 --
 4 files changed, 10 insertions(+), 55 deletions(-)

diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
index 8d6f685..36a8fe1 100644
--- a/fs/nfs/nfs4filelayout.c
+++ b/fs/nfs/nfs4filelayout.c
@@ -68,45 +68,19 @@ struct pnfs_client_operations *pnfs_callback_ops;
 ssize_t filelayout_get_stripesize(struct pnfs_layout_type *);
 struct layoutdriver_io_operations filelayout_io_operations;
 
-/* Initialize and return the pnfs_mount_type structure so the
- * pNFS_client can refer to the mount point later on
- */
-struct pnfs_mount_type*
+int
 filelayout_initialize_mountpoint(struct super_block *sb, struct nfs_fh *fh)
 {
-	struct filelayout_mount_type *fl_mt;
-	struct pnfs_mount_type *mt;
-
-	fl_mt = kmalloc(sizeof(struct filelayout_mount_type), GFP_KERNEL);
-	if (!fl_mt)
-		goto error_ret;
-
-	mt = kmalloc(sizeof(struct pnfs_mount_type), GFP_KERNEL);
-	if (!mt)
-		goto cleanup_fl_mt;
-
-	fl_mt->fl_sb = sb;
-	mt->mountid = (void *)fl_mt;
 
 	if (nfs4_alloc_init_deviceid_cache(NFS_SB(sb)->nfs_client,
-					   nfs4_fl_free_deviceid_callback))
-		goto cleanup_mt;
-
+					   nfs4_fl_free_deviceid_callback)) {
+		printk(KERN_WARNING "%s: deviceid cache could not be "
+			"initialized\n", __func__);
+		return 0;
+	}
 	dprintk("%s: deviceid cache has been initialized successfully\n",
 		__func__);
-	return mt;
-
-cleanup_mt: ;
-	kfree(mt);
-
-cleanup_fl_mt: ;
-	kfree(fl_mt);
-
-error_ret: ;
-	printk(KERN_WARNING "%s: deviceid cache could not be initialized\n",
-		__func__);
-
-	return NULL;
+	return 1;
 }
 
 /* This function is used by the layout driver to calculate the
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 0e03259..3362ef5 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -207,16 +207,14 @@ void
 set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id)
 {
 	struct pnfs_module *mod;
-	struct pnfs_mount_type *mt;
 	struct nfs_server *server = NFS_SB(sb);
 
 	if (server->pnfs_curr_ld)
 		return;
 
 	if (id > 0 && find_pnfs(id, &mod)) {
-		mt = mod->pnfs_ld_type->ld_io_ops->initialize_mountpoint(
-			sb, fh);
-		if (!mt) {
+		if (!mod->pnfs_ld_type->ld_io_ops->initialize_mountpoint(
+			sb, fh)) {
 			printk(KERN_ERR "%s: Error initializing mount point "
 			       "for layout driver %u. ", __func__, id);
 			goto out_err;
@@ -226,7 +224,6 @@ set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id)
 		 * and has taken a reference on the nfs_client cl_devid_cache
 		 */
 		server->pnfs_curr_ld = mod->pnfs_ld_type;
-		server->pnfs_mountid = mt;
 		server->nfs_client->rpc_ops = &pnfs_v4_clientops;
 		dprintk("%s: pNFS module for %u set\n", __func__, id);
 		return;
@@ -236,7 +233,6 @@ set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id)
 out_err:
 	dprintk("Using NFSv4 I/O\n");
 	server->pnfs_curr_ld = NULL;
-	server->pnfs_mountid = NULL;
 	return;
 }
 
diff --git a/include/linux/nfs4_pnfs.h b/include/linux/nfs4_pnfs.h
index 4fdf87e..7ca8f85 100644
--- a/include/linux/nfs4_pnfs.h
+++ b/include/linux/nfs4_pnfs.h
@@ -30,13 +30,6 @@ struct pnfs_layoutdriver_type {
 	struct layoutdriver_policy_operations *ld_policy_ops;
 };
 
-/* Layout driver specific identifier for a mount point.  For each mountpoint
- * a reference is stored in the nfs_server structure.
- */
-struct pnfs_mount_type {
-	void *mountid;
-};
-
 struct pnfs_fsdata {
 	int ok_to_use_pnfs;
 	struct pnfs_layout_segment *lseg;
@@ -62,12 +55,6 @@ PNFS_NFS_SERVER(struct pnfs_layout_type *lo)
 	return NFS_SERVER(PNFS_INODE(lo));
 }
 
-static inline struct pnfs_mount_type *
-PNFS_MOUNTID(struct pnfs_layout_type *lo)
-{
-	return NFS_SERVER(PNFS_INODE(lo))->pnfs_mountid;
-}
-
 static inline void *
 PNFS_LD_DATA(struct pnfs_layout_type *lo)
 {
@@ -181,7 +168,7 @@ struct layoutdriver_io_operations {
 
 	/* Registration information for a new mounted file system
 	 */
-	struct pnfs_mount_type * (*initialize_mountpoint) (struct super_block *, struct nfs_fh *fh);
+	int (*initialize_mountpoint) (struct super_block *, struct nfs_fh *fh);
 };
 
 enum layoutdriver_policy_flags {
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index bb0aa9c..9b160d4 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -165,8 +165,6 @@ struct nfs_server {
 #ifdef CONFIG_NFS_V4_1
 	u32				pnfs_fs_ltype;/* fs_layouttype attr */
 	struct pnfs_layoutdriver_type  *pnfs_curr_ld; /* Active layout driver */
-	struct pnfs_mount_type         *pnfs_mountid; /* Mount identifier for
-							 layout driver */
 #endif /* CONFIG_NFS_V4_1 */
 
 	void (*destroy)(struct nfs_server *);
-- 
1.6.6

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux