staging/lustre: lloop depends on BLOCK

Add a config option for llite/lloop in lustre driver, making it depends
on BLOCK to fix this better:
drivers/staging/lustre/lustre/fid/../include/linux/lustre_compat25.h:117:2:
error: implicit declaration of function ‘unregister_blkdev'

Also, remove the wrapper ll_unregister_blkdev which depends on BLOCK in
the header and just call unregister_blkdev in lloop.c based on Peng Tao's
comment. Drop the redundant dependency on STAGING for LUSTRE_FS, remove
some unnecessary jdb header files which depends on BLOCK btw.

Signed-off-by: Xiong Zhou <jencce.kernel@gmail.com>
Reviewed-by: Peng Tao <tao.peng@emc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Xiong Zhou 2013-08-02 13:50:48 +08:00 committed by Greg Kroah-Hartman
parent b50c460a6c
commit 49126e47bf
7 changed files with 9 additions and 16 deletions

View File

@ -1,6 +1,6 @@
config LUSTRE_FS config LUSTRE_FS
tristate "Lustre file system client support" tristate "Lustre file system client support"
depends on STAGING && INET && BLOCK && m depends on INET && m
select LNET select LNET
select CRYPTO select CRYPTO
select CRYPTO_CRC32 select CRYPTO_CRC32
@ -53,3 +53,8 @@ config LUSTRE_TRANSLATE_ERRNOS
bool bool
depends on LUSTRE_FS && !X86 depends on LUSTRE_FS && !X86
default true default true
config LUSTRE_LLITE_LLOOP
bool "Lustre virtual block device"
depends on LUSTRE_FS && BLOCK
default m

View File

@ -45,7 +45,6 @@
# include <linux/libcfs/libcfs.h> # include <linux/libcfs/libcfs.h>
# include <linux/module.h> # include <linux/module.h>
# include <linux/jbd.h>
# include <asm/div64.h> # include <asm/div64.h>
#include <obd.h> #include <obd.h>

View File

@ -44,7 +44,6 @@
# include <linux/libcfs/libcfs.h> # include <linux/libcfs/libcfs.h>
# include <linux/module.h> # include <linux/module.h>
# include <linux/jbd.h>
# include <asm/div64.h> # include <asm/div64.h>
#include <obd.h> #include <obd.h>

View File

@ -111,13 +111,6 @@ static inline void ll_set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt,
#define TREE_READ_LOCK_IRQ(mapping) spin_lock_irq(&(mapping)->tree_lock) #define TREE_READ_LOCK_IRQ(mapping) spin_lock_irq(&(mapping)->tree_lock)
#define TREE_READ_UNLOCK_IRQ(mapping) spin_unlock_irq(&(mapping)->tree_lock) #define TREE_READ_UNLOCK_IRQ(mapping) spin_unlock_irq(&(mapping)->tree_lock)
static inline
int ll_unregister_blkdev(unsigned int dev, const char *name)
{
unregister_blkdev(dev, name);
return 0;
}
#define ll_invalidate_bdev(a,b) invalidate_bdev((a)) #define ll_invalidate_bdev(a,b) invalidate_bdev((a))
#ifndef FS_HAS_FIEMAP #ifndef FS_HAS_FIEMAP

View File

@ -1,5 +1,5 @@
obj-$(CONFIG_LUSTRE_FS) += lustre.o obj-$(CONFIG_LUSTRE_FS) += lustre.o
obj-$(CONFIG_LUSTRE_FS) += llite_lloop.o obj-$(CONFIG_LUSTRE_LLITE_LLOOP) += llite_lloop.o
lustre-y := dcache.o dir.o file.o llite_close.o llite_lib.o llite_nfs.o \ lustre-y := dcache.o dir.o file.o llite_close.o llite_lib.o llite_nfs.o \
rw.o lproc_llite.o namei.o symlink.o llite_mmap.o \ rw.o lproc_llite.o namei.o symlink.o llite_mmap.o \
xattr.o remote_perm.o llite_rmtacl.o llite_capa.o \ xattr.o remote_perm.o llite_rmtacl.o llite_capa.o \

View File

@ -848,10 +848,8 @@ static void lloop_exit(void)
blk_cleanup_queue(loop_dev[i].lo_queue); blk_cleanup_queue(loop_dev[i].lo_queue);
put_disk(disks[i]); put_disk(disks[i]);
} }
if (ll_unregister_blkdev(lloop_major, "lloop"))
CWARN("lloop: cannot unregister blkdev\n"); unregister_blkdev(lloop_major, "lloop");
else
CDEBUG(D_CONFIG, "unregistered lloop major %d\n", lloop_major);
OBD_FREE(disks, max_loop * sizeof(*disks)); OBD_FREE(disks, max_loop * sizeof(*disks));
OBD_FREE(loop_dev, max_loop * sizeof(*loop_dev)); OBD_FREE(loop_dev, max_loop * sizeof(*loop_dev));

View File

@ -35,7 +35,6 @@
#define DEBUG_SUBSYSTEM S_FILTER #define DEBUG_SUBSYSTEM S_FILTER
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/jbd.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kmod.h> #include <linux/kmod.h>
#include <linux/slab.h> #include <linux/slab.h>