From: Arnd Bergmann <arnd@arndb.de>
To: John Kacur <jkacur@redhat.com>
Cc: lkml <linux-kernel@vger.kernel.org>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Frederic Weisbecker" <fweisbec@gmail.com>,
"Jan Blunck" <jblunck@gmail.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Arnd Bergmann" <arnd@arndb.de>, "Jörn Engel" <joern@logfs.org>
Subject: [PATCH 1/7] logfs: push down BKL into ioctl function
Date: Tue, 27 Apr 2010 16:24:19 +0200 [thread overview]
Message-ID: <1272378265-10909-2-git-send-email-arnd@arndb.de> (raw)
In-Reply-To: <alpine.LFD.2.00.1004271359180.3318@localhost>
I'm sure that logfs doesn't rely on the BKL, but right now,
we're just pushing it down.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Jörn Engel <joern@logfs.org>
---
fs/logfs/dir.c | 2 +-
fs/logfs/file.c | 18 +++++++++++++++---
fs/logfs/logfs.h | 4 ++--
fs/smbfs/ioctl.c | 2 +-
4 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c
index 2396a85..a801b5e 100644
--- a/fs/logfs/dir.c
+++ b/fs/logfs/dir.c
@@ -821,7 +821,7 @@ const struct inode_operations logfs_dir_iops = {
};
const struct file_operations logfs_dir_fops = {
.fsync = logfs_fsync,
- .ioctl = logfs_ioctl,
+ .unlocked_ioctl = logfs_unlocked_ioctl,
.readdir = logfs_readdir,
.read = generic_read_dir,
};
diff --git a/fs/logfs/file.c b/fs/logfs/file.c
index 370f367..1dbc342 100644
--- a/fs/logfs/file.c
+++ b/fs/logfs/file.c
@@ -8,6 +8,7 @@
#include "logfs.h"
#include <linux/sched.h>
#include <linux/writeback.h>
+#include <linux/smp_lock.h>
static int logfs_write_begin(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, unsigned flags,
@@ -171,9 +172,9 @@ static int logfs_releasepage(struct page *page, gfp_t only_xfs_uses_this)
}
-int logfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
- unsigned long arg)
+static long logfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
+ struct inode *inode = file->f_path.dentry->d_inode;
struct logfs_inode *li = logfs_inode(inode);
unsigned int oldflags, flags;
int err;
@@ -209,6 +210,17 @@ int logfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
}
}
+long logfs_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ int ret;
+
+ lock_kernel();
+ ret = logfs_ioctl(file, cmd, arg);
+ unlock_kernel();
+
+ return ret;
+}
+
int logfs_fsync(struct file *file, struct dentry *dentry, int datasync)
{
struct super_block *sb = dentry->d_inode->i_sb;
@@ -243,7 +255,7 @@ const struct file_operations logfs_reg_fops = {
.aio_read = generic_file_aio_read,
.aio_write = generic_file_aio_write,
.fsync = logfs_fsync,
- .ioctl = logfs_ioctl,
+ .unlocked_ioctl = logfs_unlocked_ioctl,
.llseek = generic_file_llseek,
.mmap = generic_file_readonly_mmap,
.open = generic_file_open,
diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h
index 0a3df1a..8432c51 100644
--- a/fs/logfs/logfs.h
+++ b/fs/logfs/logfs.h
@@ -501,8 +501,8 @@ extern const struct inode_operations logfs_reg_iops;
extern const struct file_operations logfs_reg_fops;
extern const struct address_space_operations logfs_reg_aops;
int logfs_readpage(struct file *file, struct page *page);
-int logfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
- unsigned long arg);
+long logfs_unlocked_ioctl(struct file *file, unsigned int cmd,
+ unsigned long arg);
int logfs_fsync(struct file *file, struct dentry *dentry, int datasync);
/* gc.c */
diff --git a/fs/smbfs/ioctl.c b/fs/smbfs/ioctl.c
index dbae1f8..910215b 100644
--- a/fs/smbfs/ioctl.c
+++ b/fs/smbfs/ioctl.c
@@ -26,7 +26,7 @@ int
smb_ioctl(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{
- struct smb_sb_info *server = server_from_inode(inode);
+ struct smb_sb_info *server = server_from_inode(filp->f_path.dentry->d_inode);
struct smb_conn_opt opt;
int result = -EINVAL;
--
1.6.3.3
next prev parent reply other threads:[~2010-04-27 14:25 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 9:18 [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes John Kacur
2010-04-27 9:18 ` [PATCH 01/10] dvb: push down BKL into ioctl functions John Kacur
2010-04-27 9:18 ` [PATCH 02/10] scsi: " John Kacur
2010-04-27 9:18 ` [PATCH 03/10] bkl: Fix up compile problems in megaraid from bkl push-down John Kacur
2010-04-27 9:18 ` [PATCH 04/10] bkl: Fix missing inode tw_chrdev_ioctl due to bkl pushdown John Kacur
2010-04-27 9:18 ` [PATCH 05/10] bkl: Fix missing inode in twl_chrdev_ioctl resulting from " John Kacur
2010-04-27 9:18 ` [PATCH 06/10] isdn: push down BKL into ioctl functions John Kacur
2010-04-27 9:18 ` [PATCH 07/10] staging: " John Kacur
2010-04-27 9:18 ` [PATCH 08/10] v4l: always use unlocked_ioctl John Kacur
2010-04-27 9:18 ` [PATCH 09/10] drivers: push down BKL into various drivers John Kacur
2010-04-27 9:18 ` [PATCH 10/10] bkl: Fix-up compile problems as a result of the bkl-pushdown John Kacur
2010-04-27 11:17 ` Arnd Bergmann
2010-04-27 11:54 ` John Kacur
2010-04-27 13:03 ` Arnd Bergmann
2010-04-28 12:24 ` Mauro Carvalho Chehab
2010-04-28 12:37 ` Hans Verkuil
2010-04-28 13:02 ` Laurent Pinchart
2010-04-28 14:46 ` Mauro Carvalho Chehab
2010-04-28 14:55 ` Linus Torvalds
2010-04-28 21:52 ` Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 0/5] Pushdown bkl from v4l ioctls Frederic Weisbecker
2010-04-29 6:44 ` Hans Verkuil
2010-04-29 7:10 ` Laurent Pinchart
2010-04-29 7:38 ` Arnd Bergmann
2010-05-01 9:55 ` Hans Verkuil
2010-05-01 10:47 ` Arnd Bergmann
2010-05-01 14:58 ` Frederic Weisbecker
2010-05-01 11:11 ` Alan Cox
2010-04-29 3:42 ` [PATCH 1/5] v4l: Pushdown bkl into video_ioctl2 Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 2/5] v4l: Use video_ioctl2_unlocked from drivers that don't want the bkl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 3/5] v4l: Change users of video_ioctl2 to use unlocked_ioctl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 4/5] v4l: Pushdown bkl to drivers that implement their own ioctl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 5/5] v4l: Remove struct v4l2_file_operations::ioctl Frederic Weisbecker
2010-04-27 11:31 ` [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes Arnd Bergmann
2010-04-27 12:19 ` John Kacur
2010-04-27 12:41 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 0/6] BKL pushdown into ioctl, continued Arnd Bergmann
2010-04-27 14:24 ` Arnd Bergmann [this message]
2010-04-27 14:32 ` [PATCH 1/7] logfs: push down BKL into ioctl function Arnd Bergmann
2010-04-27 14:58 ` Jörn Engel
2010-04-27 15:05 ` Arnd Bergmann
2010-04-27 15:09 ` Jörn Engel
2010-04-27 15:27 ` John Kacur
2010-04-27 15:32 ` Jörn Engel
2010-04-27 15:38 ` Arnd Bergmann
2010-04-27 20:12 ` Frederic Weisbecker
2010-04-27 20:30 ` [PATCH] logfs: kill BKL Arnd Bergmann
2010-05-19 12:51 ` Frederic Weisbecker
2010-04-27 15:36 ` [PATCH 1/7] logfs: push down BKL into ioctl function Linus Torvalds
2010-04-27 16:29 ` John Kacur
2010-04-27 19:59 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 2/7] hfsplus: " Arnd Bergmann
2010-04-27 14:24 ` [PATCH 3/7] cris: push down BKL into some device drivers Arnd Bergmann
2010-04-27 17:22 ` Frederic Weisbecker
2010-04-30 7:53 ` Jesper Nilsson
2010-05-17 2:51 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 4/7] sn_hwperf: kill BKL usage Arnd Bergmann
2010-04-27 14:24 ` [PATCH 5/7] um/mmapper: remove " Arnd Bergmann
2010-04-27 14:24 ` [PATCH 6/7] coda/psdev: remove BKL from ioctl function Arnd Bergmann
2010-04-27 14:24 ` [PATCH 7/7] smbfs: push down BKL into " Arnd Bergmann
2010-04-27 12:40 ` [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes Frederic Weisbecker
2010-04-27 12:51 ` Geert Uytterhoeven
2010-04-28 21:18 ` Frederic Weisbecker
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=1272378265-10909-2-git-send-email-arnd@arndb.de \
--to=arnd@arndb.de \
--cc=fweisbec@gmail.com \
--cc=jblunck@gmail.com \
--cc=jkacur@redhat.com \
--cc=joern@logfs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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
all inboxes | Powered by JetHome®