2008-02-17 08:21:51

by Adrian Bunk

[permalink] [raw]
Subject: [2.6 patch] make vfs_ioctl() static

This patch makes the needlessly global vfs_ioctl() static.

Signed-off-by: Adrian Bunk <[email protected]>

---

fs/ioctl.c | 4 ++--
include/linux/fs.h | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)

18bc247a745a825238208f88fbe1b86ba1ef304e diff --git a/fs/ioctl.c b/fs/ioctl.c
index f32fbde..7db32b3 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -28,8 +28,8 @@
*
* Returns 0 on success, -errno on error.
*/
-long vfs_ioctl(struct file *filp, unsigned int cmd,
- unsigned long arg)
+static long vfs_ioctl(struct file *filp, unsigned int cmd,
+ unsigned long arg)
{
int error = -ENOTTY;

diff --git a/include/linux/fs.h b/include/linux/fs.h
index b84b848..23528b8 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1919,7 +1919,6 @@ extern int vfs_stat_fd(int dfd, char __user *, struct kstat *);
extern int vfs_lstat_fd(int dfd, char __user *, struct kstat *);
extern int vfs_fstat(unsigned int, struct kstat *);

-extern long vfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
unsigned long arg);


2008-02-17 13:18:59

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [2.6 patch] make vfs_ioctl() static

On Sun, Feb 17, 2008 at 10:18:42AM +0200, Adrian Bunk wrote:
> This patch makes the needlessly global vfs_ioctl() static.

I think the point was toa eventually export it for stackable filesystem
use. But until they start using it marking it static seems fine with
me.

2008-02-17 20:23:24

by Erez Zadok

[permalink] [raw]
Subject: Re: [2.6 patch] make vfs_ioctl() static

In message <[email protected]>, Christoph Hellwig writes:
> On Sun, Feb 17, 2008 at 10:18:42AM +0200, Adrian Bunk wrote:
> > This patch makes the needlessly global vfs_ioctl() static.
>
> I think the point was toa eventually export it for stackable filesystem
> use. But until they start using it marking it static seems fine with
> me.

Right. I'm not using it yet in unionfs, although I could; for now I'm just
calling very similar code myself. This is only used in unionfs after I
process my own ioctls; IOW, I pass all unknown ioctls to the lower level and
let it handle it.

eCryptfs, however, doesn't pass unknown ioctls to the lower layer: it only
processes its own.

Honestly I'm not sure which is more appropriate: should a stackable f/s pass
unknown ioctls to the lower f/s or not? If it doesn't, would any important
functionality be lost?

Erez.