From: "Kirill A. Shutemov" <kas@openvz.org>
To: Trond Myklebust <Trond.Myklebust@netapp.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
Neil Brown <neilb@suse.de>
Cc: Pavel Emelyanov <xemul@parallels.com>,
linux-nfs@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Rob Landley <rlandley@parallels.com>,
Al Viro <viro@ZenIV.linux.org.uk>,
containers@lists.linux-foundation.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 09/16] sunrpc: introduce rpc_pipefs_add_destroy_cb()
Date: Thu, 20 Jan 2011 13:37:22 +0200 [thread overview]
Message-ID: <20110120113722.GC24349@shutemov.name> (raw)
In-Reply-To: <1295012954-7769-10-git-send-email-kas@openvz.org>
On Fri, Jan 14, 2011 at 03:49:07PM +0200, Kirill A. Shutemov wrote:
> Add facility to do some action on destroying of rpc_pipefs superblock.
>
> Signed-off-by: Kirill A. Shutemov <kas@openvz.org>
> ---
> include/linux/sunrpc/rpc_pipe_fs.h | 3 ++
> net/sunrpc/rpc_pipe.c | 51 ++++++++++++++++++++++++++++++++++-
> 2 files changed, 52 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
> index b09bfa5..f5216f1 100644
> --- a/include/linux/sunrpc/rpc_pipe_fs.h
> +++ b/include/linux/sunrpc/rpc_pipe_fs.h
> @@ -46,6 +46,9 @@ RPC_I(struct inode *inode)
>
> extern struct vfsmount *init_rpc_pipefs;
>
> +extern int rpc_pipefs_add_destroy_cb(struct super_block *sb,
> + void (*destroy_cb)(void *data), void *data);
> +
> extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
>
> struct rpc_clnt;
> diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
> index 484c9a3..39511e3 100644
> --- a/net/sunrpc/rpc_pipe.c
> +++ b/net/sunrpc/rpc_pipe.c
> @@ -939,6 +939,31 @@ static const struct super_operations s_ops = {
>
> #define RPCAUTH_GSSMAGIC 0x67596969
>
> +struct destroy_cb {
> + struct list_head list;
> + void (*callback)(void *data);
> + void *data;
> +};
> +
> +int rpc_pipefs_add_destroy_cb(struct super_block *sb,
> + void (*destroy_cb)(void *data), void *data)
> +{
> + struct destroy_cb *dcb;
> + struct list_head *destroy_cb_list = sb->s_fs_info;
> +
> + dcb = kmalloc(sizeof(*dcb), GFP_KERNEL);
> + if (!dcb)
> + return -ENOMEM;
> +
> + dcb->callback = destroy_cb;
> + dcb->data = data;
> + INIT_LIST_HEAD(&dcb->list);
> + list_add(&dcb->list, destroy_cb_list);
> +
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(rpc_pipefs_add_destroy_cb);
> +
> /*
> * We have a single directory with 1 node in it.
> */
> @@ -1004,8 +1029,16 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
> iput(inode);
> return -ENOMEM;
> }
> - if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL))
> + /* List of destroy callbacks */
> + sb->s_fs_info = kmalloc(sizeof(struct list_head), GFP_KERNEL);
> + if (!sb->s_fs_info)
> + return -ENOMEM;
> + INIT_LIST_HEAD((struct list_head*) &sb->s_fs_info);
'&' is by mistake here.
> + if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL)) {
> + kfree(sb->s_fs_info);
> return -ENOMEM;
> + }
> +
> return 0;
> }
--
Kirill A. Shutemov
WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kas-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
To: Trond Myklebust
<Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>,
"J. Bruce Fields"
<bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>,
Neil Brown <neilb-l3A5Bk7waGM@public.gmane.org>
Cc: Pavel Emelyanov <xemul-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>,
linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>,
Rob Landley <rlandley-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>,
Al Viro <viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v3 09/16] sunrpc: introduce rpc_pipefs_add_destroy_cb()
Date: Thu, 20 Jan 2011 13:37:22 +0200 [thread overview]
Message-ID: <20110120113722.GC24349@shutemov.name> (raw)
In-Reply-To: <1295012954-7769-10-git-send-email-kas-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
On Fri, Jan 14, 2011 at 03:49:07PM +0200, Kirill A. Shutemov wrote:
> Add facility to do some action on destroying of rpc_pipefs superblock.
>
> Signed-off-by: Kirill A. Shutemov <kas-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
> ---
> include/linux/sunrpc/rpc_pipe_fs.h | 3 ++
> net/sunrpc/rpc_pipe.c | 51 ++++++++++++++++++++++++++++++++++-
> 2 files changed, 52 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
> index b09bfa5..f5216f1 100644
> --- a/include/linux/sunrpc/rpc_pipe_fs.h
> +++ b/include/linux/sunrpc/rpc_pipe_fs.h
> @@ -46,6 +46,9 @@ RPC_I(struct inode *inode)
>
> extern struct vfsmount *init_rpc_pipefs;
>
> +extern int rpc_pipefs_add_destroy_cb(struct super_block *sb,
> + void (*destroy_cb)(void *data), void *data);
> +
> extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
>
> struct rpc_clnt;
> diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
> index 484c9a3..39511e3 100644
> --- a/net/sunrpc/rpc_pipe.c
> +++ b/net/sunrpc/rpc_pipe.c
> @@ -939,6 +939,31 @@ static const struct super_operations s_ops = {
>
> #define RPCAUTH_GSSMAGIC 0x67596969
>
> +struct destroy_cb {
> + struct list_head list;
> + void (*callback)(void *data);
> + void *data;
> +};
> +
> +int rpc_pipefs_add_destroy_cb(struct super_block *sb,
> + void (*destroy_cb)(void *data), void *data)
> +{
> + struct destroy_cb *dcb;
> + struct list_head *destroy_cb_list = sb->s_fs_info;
> +
> + dcb = kmalloc(sizeof(*dcb), GFP_KERNEL);
> + if (!dcb)
> + return -ENOMEM;
> +
> + dcb->callback = destroy_cb;
> + dcb->data = data;
> + INIT_LIST_HEAD(&dcb->list);
> + list_add(&dcb->list, destroy_cb_list);
> +
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(rpc_pipefs_add_destroy_cb);
> +
> /*
> * We have a single directory with 1 node in it.
> */
> @@ -1004,8 +1029,16 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
> iput(inode);
> return -ENOMEM;
> }
> - if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL))
> + /* List of destroy callbacks */
> + sb->s_fs_info = kmalloc(sizeof(struct list_head), GFP_KERNEL);
> + if (!sb->s_fs_info)
> + return -ENOMEM;
> + INIT_LIST_HEAD((struct list_head*) &sb->s_fs_info);
'&' is by mistake here.
> + if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL)) {
> + kfree(sb->s_fs_info);
> return -ENOMEM;
> + }
> +
> return 0;
> }
--
Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-01-20 11:37 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-14 13:48 [PATCH v3 00/16] make rpc_pipefs be mountable multiple time Kirill A. Shutemov
2011-01-14 13:48 ` [PATCH v3 01/16] sunrpc: mount rpc_pipefs on initialization Kirill A. Shutemov
[not found] ` <1295012954-7769-1-git-send-email-kas-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2011-01-14 13:48 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 02/16] sunrpc: introduce init_rpc_pipefs Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 03/16] sunrpc: push init_rpc_pipefs up to rpc_create() callers Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 04/16] sunrpc: tag svc_serv with rpc_pipefs mount point Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 05/16] sunrpc: get rpc_pipefs mount point for svc_serv from callers Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 06/16] lockd: get rpc_pipefs mount point " Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 07/16] sunrpc: get rpc_pipefs mount point for rpcb_create[_local] " Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 08/16] sunrpc: tag pipefs field of cache_detail with rpc_pipefs mount point Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 09/16] sunrpc: introduce rpc_pipefs_add_destroy_cb() Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 10/16] nfs: per-rpc_pipefs dns cache Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 11/16] Export iterate_mounts symbol to be able to use from sunrpc module Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 12/16] sunrpc: introduce get_rpc_pipefs() Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 13/16] nfs: introduce mount option 'rpcmount' Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 14/16] sunrpc: make rpc_pipefs be mountable multiple times Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 15/16] sunrpc: remove global init_rpc_pipefs Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 16/16] Rework get_rpc_pipefs and introduce put_rpc_pipefs() Kirill A. Shutemov
2011-01-17 12:30 ` [PATCH v3 00/16] make rpc_pipefs be mountable multiple time Rob Landley
2011-01-24 23:55 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 02/16] sunrpc: introduce init_rpc_pipefs Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 03/16] sunrpc: push init_rpc_pipefs up to rpc_create() callers Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 04/16] sunrpc: tag svc_serv with rpc_pipefs mount point Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 05/16] sunrpc: get rpc_pipefs mount point for svc_serv from callers Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 06/16] lockd: get rpc_pipefs mount point " Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 07/16] sunrpc: get rpc_pipefs mount point for rpcb_create[_local] " Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 08/16] sunrpc: tag pipefs field of cache_detail with rpc_pipefs mount point Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 09/16] sunrpc: introduce rpc_pipefs_add_destroy_cb() Kirill A. Shutemov
[not found] ` <1295012954-7769-10-git-send-email-kas-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2011-01-20 11:37 ` Kirill A. Shutemov
2011-01-20 11:37 ` Kirill A. Shutemov [this message]
2011-01-20 11:37 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 10/16] nfs: per-rpc_pipefs dns cache Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 11/16] Export iterate_mounts symbol to be able to use from sunrpc module Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 12/16] sunrpc: introduce get_rpc_pipefs() Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 13/16] nfs: introduce mount option 'rpcmount' Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 14/16] sunrpc: make rpc_pipefs be mountable multiple times Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 15/16] sunrpc: remove global init_rpc_pipefs Kirill A. Shutemov
2011-01-14 13:49 ` [PATCH v3 16/16] Rework get_rpc_pipefs and introduce put_rpc_pipefs() Kirill A. Shutemov
2011-01-14 13:49 ` Kirill A. Shutemov
2011-01-17 12:30 ` [PATCH v3 00/16] make rpc_pipefs be mountable multiple time Rob Landley
2011-01-20 11:35 ` Kirill A. Shutemov
2011-01-20 11:35 ` Kirill A. Shutemov
2011-01-20 13:57 ` Rob Landley
2011-01-20 15:52 ` J. Bruce Fields
[not found] ` <4D383F60.4080907-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2011-01-20 15:52 ` J. Bruce Fields
[not found] ` <20110120113552.GB24349-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2011-01-20 13:57 ` Rob Landley
[not found] ` <4D343658.1020205-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2011-01-20 11:35 ` Kirill A. Shutemov
2011-01-24 23:55 ` Kirill A. Shutemov
2011-01-24 23:55 ` Kirill A. Shutemov
2011-01-24 23:55 ` Kirill A. Shutemov
[not found] ` <20110124235545.GA793-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2011-01-25 0:25 ` J. Bruce Fields
2011-01-25 1:53 ` Rob Landley
2011-01-25 0:25 ` J. Bruce Fields
2011-01-25 0:25 ` J. Bruce Fields
2011-01-25 1:53 ` Rob Landley
2011-01-25 1:53 ` Rob Landley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110120113722.GC24349@shutemov.name \
--to=kas@openvz.org \
--cc=Trond.Myklebust@netapp.com \
--cc=bfields@fieldses.org \
--cc=containers@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=netdev@vger.kernel.org \
--cc=rlandley@parallels.com \
--cc=viro@ZenIV.linux.org.uk \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.