From: "Denis V. Lunev" <den@openvz.org>
To: akpm@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, "Denis V. Lunev" <den@openvz.org>
Subject: [PATCH 4/29] afs: use non-racy method for proc entries creation
Date: Tue, 8 Apr 2008 15:19:11 +0400 [thread overview]
Message-ID: <1207653576-12640-4-git-send-email-den@openvz.org> (raw)
In-Reply-To: <1207653508.7171.18.camel@iris.sw.ru>
Use proc_create()/proc_create_data() to make sure that ->proc_fops and
->data be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: David Howells <dhowells@redhat.com>
---
fs/afs/proc.c | 33 ++++++++++++++-------------------
1 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/fs/afs/proc.c b/fs/afs/proc.c
index 846c761..9f7d1ae 100644
--- a/fs/afs/proc.c
+++ b/fs/afs/proc.c
@@ -41,6 +41,7 @@ static const struct file_operations afs_proc_cells_fops = {
.write = afs_proc_cells_write,
.llseek = seq_lseek,
.release = seq_release,
+ .owner = THIS_MODULE,
};
static int afs_proc_rootcell_open(struct inode *inode, struct file *file);
@@ -56,7 +57,8 @@ static const struct file_operations afs_proc_rootcell_fops = {
.read = afs_proc_rootcell_read,
.write = afs_proc_rootcell_write,
.llseek = no_llseek,
- .release = afs_proc_rootcell_release
+ .release = afs_proc_rootcell_release,
+ .owner = THIS_MODULE,
};
static int afs_proc_cell_volumes_open(struct inode *inode, struct file *file);
@@ -80,6 +82,7 @@ static const struct file_operations afs_proc_cell_volumes_fops = {
.read = seq_read,
.llseek = seq_lseek,
.release = afs_proc_cell_volumes_release,
+ .owner = THIS_MODULE,
};
static int afs_proc_cell_vlservers_open(struct inode *inode,
@@ -104,6 +107,7 @@ static const struct file_operations afs_proc_cell_vlservers_fops = {
.read = seq_read,
.llseek = seq_lseek,
.release = afs_proc_cell_vlservers_release,
+ .owner = THIS_MODULE,
};
static int afs_proc_cell_servers_open(struct inode *inode, struct file *file);
@@ -127,6 +131,7 @@ static const struct file_operations afs_proc_cell_servers_fops = {
.read = seq_read,
.llseek = seq_lseek,
.release = afs_proc_cell_servers_release,
+ .owner = THIS_MODULE,
};
/*
@@ -143,17 +148,13 @@ int afs_proc_init(void)
goto error_dir;
proc_afs->owner = THIS_MODULE;
- p = create_proc_entry("cells", 0, proc_afs);
+ p = proc_create("cells", 0, proc_afs, &afs_proc_cells_fops);
if (!p)
goto error_cells;
- p->proc_fops = &afs_proc_cells_fops;
- p->owner = THIS_MODULE;
- p = create_proc_entry("rootcell", 0, proc_afs);
+ p = proc_create("rootcell", 0, proc_afs, &afs_proc_rootcell_fops);
if (!p)
goto error_rootcell;
- p->proc_fops = &afs_proc_rootcell_fops;
- p->owner = THIS_MODULE;
_leave(" = 0");
return 0;
@@ -395,26 +396,20 @@ int afs_proc_cell_setup(struct afs_cell *cell)
if (!cell->proc_dir)
goto error_dir;
- p = create_proc_entry("servers", 0, cell->proc_dir);
+ p = proc_create_data("servers", 0, cell->proc_dir,
+ &afs_proc_cell_servers_fops, cell);
if (!p)
goto error_servers;
- p->proc_fops = &afs_proc_cell_servers_fops;
- p->owner = THIS_MODULE;
- p->data = cell;
- p = create_proc_entry("vlservers", 0, cell->proc_dir);
+ p = proc_create_data("vlservers", 0, cell->proc_dir,
+ &afs_proc_cell_vlservers_fops, cell);
if (!p)
goto error_vlservers;
- p->proc_fops = &afs_proc_cell_vlservers_fops;
- p->owner = THIS_MODULE;
- p->data = cell;
- p = create_proc_entry("volumes", 0, cell->proc_dir);
+ p = proc_create_data("volumes", 0, cell->proc_dir,
+ &afs_proc_cell_volumes_fops, cell);
if (!p)
goto error_volumes;
- p->proc_fops = &afs_proc_cell_volumes_fops;
- p->owner = THIS_MODULE;
- p->data = cell;
_leave(" = 0");
return 0;
--
1.5.3.rc5
next prev parent reply other threads:[~2008-04-08 11:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-08 11:18 [PATCH 0/29] proc entries creation race Denis V. Lunev
2008-04-08 11:19 ` [PATCH 1/29] proc: introduce proc_create_data to setup de->data Denis V. Lunev
2008-04-08 11:19 ` [PATCH 2/29] nfsd: use proc_create to setup de->proc_fops Denis V. Lunev
2008-04-08 11:19 ` [PATCH 3/29] nfs: " Denis V. Lunev
2008-04-08 11:19 ` Denis V. Lunev [this message]
2008-04-08 11:19 ` [PATCH 5/29] ext4: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 6/29] reiserfs: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 7/29] jbd2: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 8/29] proc: use non-racy method for /proc/page_owner creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 9/29] sysvipc: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 10/29] mm: use non-racy method for /proc/swaps creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 11/29] sound: use non-racy method for /proc/driver/snd-page-alloc creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 12/29] zorro: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 13/29] samples: use non-racy method for /proc/marker-example creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 14/29] scsi: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 15/29] usb: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 16/29] s390: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 17/29] arm: use non-racy method for /proc/davinci_clocks creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 18/29] avr32: proc: use non-racy method for /proc/tlb creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 19/29] cris: use non-racy method for /proc/system_profile creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 20/29] ia64: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 21/29] parisc: use non-racy method for /proc/pcxl_dma creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 22/29] powerpc: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 23/29] acpi: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 24/29] net: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 25/29] isdn: " Denis V. Lunev
2008-04-30 17:57 ` [patch, -git] isdn: hysdn_procconf.c build fix Ingo Molnar
2008-04-30 18:10 ` Andrew Morton
2008-04-30 18:30 ` Ingo Molnar
2008-04-30 18:47 ` Andrew Morton
2008-04-30 19:03 ` Denis V. Lunev
2008-04-30 19:14 ` Andrew Morton
2008-04-30 19:24 ` Harvey Harrison
2008-04-30 21:21 ` Alexey Dobriyan
2008-04-08 11:19 ` [PATCH 26/29] kernel: use non-racy method for proc entries creation Denis V. Lunev
2008-04-08 11:19 ` [PATCH 27/29] parisc: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 28/29] drivers: " Denis V. Lunev
2008-04-08 11:19 ` [PATCH 29/29] " Denis V. Lunev
2008-04-17 17:13 ` Dmitry Torokhov
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=1207653576-12640-4-git-send-email-den@openvz.org \
--to=den@openvz.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox