[PATCH] fix ->llseek for more directories
authorChristoph Hellwig <hch@lst.de>
Wed, 3 Sep 2008 19:53:01 +0000 (21:53 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 23 Oct 2008 09:13:21 +0000 (05:13 -0400)
With this patch all directory fops instances that have a readdir
that doesn't take the BKL are switched to generic_file_llseek.

Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/afs/dir.c
fs/bfs/dir.c
fs/cifs/cifsfs.c
fs/fat/dir.c
fs/jffs2/dir.c
fs/jfs/namei.c
fs/omfs/dir.c
fs/openpromfs/inode.c
fs/proc/proc_sysctl.c
fs/sysfs/dir.c
fs/ufs/dir.c

index dfda03d4397d03862ae9b64d0832d4d9463010c5..99cf390641f74ee198e5f37d53b9a821b2268f50 100644 (file)
@@ -45,6 +45,7 @@ const struct file_operations afs_dir_file_operations = {
        .release        = afs_release,
        .readdir        = afs_readdir,
        .lock           = afs_lock,
+       .llseek         = generic_file_llseek,
 };
 
 const struct inode_operations afs_dir_inode_operations = {
index ed8feb052df978fff85f0edaabee9fa17ce9609d..daae463068e4e45615ba4c2ef03000f99fdfed96 100644 (file)
@@ -80,6 +80,7 @@ const struct file_operations bfs_dir_operations = {
        .read           = generic_read_dir,
        .readdir        = bfs_readdir,
        .fsync          = file_fsync,
+       .llseek         = generic_file_llseek,
 };
 
 extern void dump_imap(const char *, struct super_block *);
index 25ecbd5b040476bf13716ccfbebc5e8032905bd2..89c64a8dcb99a3568a58f9b6d2ed8266a0f8dec4 100644 (file)
@@ -765,6 +765,7 @@ const struct file_operations cifs_dir_ops = {
        .dir_notify = cifs_dir_notify,
 #endif /* CONFIG_CIFS_EXPERIMENTAL */
        .unlocked_ioctl  = cifs_ioctl,
+       .llseek = generic_file_llseek,
 };
 
 static void
index cd4a0162e10d6dea7507507cf25a13fd93d93f04..bae1c3292522eddbb744bcf6e6f84bc56da349e3 100644 (file)
@@ -839,6 +839,7 @@ const struct file_operations fat_dir_operations = {
        .compat_ioctl   = fat_compat_dir_ioctl,
 #endif
        .fsync          = file_fsync,
+       .llseek         = generic_file_llseek,
 };
 
 static int fat_get_short_entry(struct inode *dir, loff_t *pos,
index 621bdfa994e71268d0f85f27e938765e12937c8e..6f60cc910f4c568f527354357f60d63349a1d8c5 100644 (file)
@@ -39,7 +39,8 @@ const struct file_operations jffs2_dir_operations =
        .read =         generic_read_dir,
        .readdir =      jffs2_readdir,
        .unlocked_ioctl=jffs2_ioctl,
-       .fsync =        jffs2_fsync
+       .fsync =        jffs2_fsync,
+       .llseek =       generic_file_llseek,
 };
 
 
index e199dde7b83c6b79db13297c9e27fb0ffd09e28f..cc3cedffbfa11d69b4c6b5bb4b4a5ab96e99dc4c 100644 (file)
@@ -1547,6 +1547,7 @@ const struct file_operations jfs_dir_operations = {
 #ifdef CONFIG_COMPAT
        .compat_ioctl   = jfs_compat_ioctl,
 #endif
+       .llseek         = generic_file_llseek,
 };
 
 static int jfs_ci_hash(struct dentry *dir, struct qstr *this)
index c0757e9988762eecae25683905188138e05832bb..c7275cfbdcfb92d4ca1a17a0444546c52d7b38c1 100644 (file)
@@ -501,4 +501,5 @@ struct inode_operations omfs_dir_inops = {
 struct file_operations omfs_dir_operations = {
        .read = generic_read_dir,
        .readdir = omfs_readdir,
+       .llseek = generic_file_llseek,
 };
index 9f5b054f06b932f873327a9c82e5674da54707cf..d41bdc784de4e920c2966fe0d18d27228df95aed 100644 (file)
@@ -167,6 +167,7 @@ static int openpromfs_readdir(struct file *, void *, filldir_t);
 static const struct file_operations openprom_operations = {
        .read           = generic_read_dir,
        .readdir        = openpromfs_readdir,
+       .llseek         = generic_file_llseek,
 };
 
 static struct dentry *openpromfs_lookup(struct inode *, struct dentry *, struct nameidata *);
index 945a81043ba223cd92206077be7847563243f89e..5fe210c091719d7d1cda43f8eac01617dd4aee8e 100644 (file)
@@ -353,6 +353,7 @@ static const struct file_operations proc_sys_file_operations = {
 
 static const struct file_operations proc_sys_dir_file_operations = {
        .readdir        = proc_sys_readdir,
+       .llseek         = generic_file_llseek,
 };
 
 static const struct inode_operations proc_sys_inode_operations = {
index 3a05a596e3b4de91dcb522401441b8dc8d959aa9..82d3b79d0e080765fb3ceb43fae1549ffe7df96d 100644 (file)
@@ -983,4 +983,5 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir)
 const struct file_operations sysfs_dir_operations = {
        .read           = generic_read_dir,
        .readdir        = sysfs_readdir,
+       .llseek         = generic_file_llseek,
 };
index df0bef18742dc63b6dee218e029b2e90d35b1c37..dbbbc46687698e72b3662046f9cd67302c5e5b7a 100644 (file)
@@ -667,4 +667,5 @@ const struct file_operations ufs_dir_operations = {
        .read           = generic_read_dir,
        .readdir        = ufs_readdir,
        .fsync          = file_fsync,
+       .llseek         = generic_file_llseek,
 };