Commit 9594caf2 authored by Jan Kara's avatar Jan Kara Committed by Jens Axboe

lustre: Convert to separately allocated bdi

Allocate struct backing_dev_info separately instead of embedding it
inside superblock. This unifies handling of bdi among users.

CC: Oleg Drokin <oleg.drokin@intel.com>
CC: Andreas Dilger <andreas.dilger@intel.com>
CC: James Simmons <jsimmons@infradead.org>
CC: lustre-devel@lists.lustre.org
Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 13eec236
...@@ -133,13 +133,9 @@ struct lustre_sb_info { ...@@ -133,13 +133,9 @@ struct lustre_sb_info {
struct obd_export *lsi_osd_exp; struct obd_export *lsi_osd_exp;
char lsi_osd_type[16]; char lsi_osd_type[16];
char lsi_fstype[16]; char lsi_fstype[16];
struct backing_dev_info lsi_bdi; /* each client mountpoint needs
* own backing_dev_info
*/
}; };
#define LSI_UMOUNT_FAILOVER 0x00200000 #define LSI_UMOUNT_FAILOVER 0x00200000
#define LSI_BDI_INITIALIZED 0x00400000
#define s2lsi(sb) ((struct lustre_sb_info *)((sb)->s_fs_info)) #define s2lsi(sb) ((struct lustre_sb_info *)((sb)->s_fs_info))
#define s2lsi_nocast(sb) ((sb)->s_fs_info) #define s2lsi_nocast(sb) ((sb)->s_fs_info)
......
...@@ -863,15 +863,6 @@ void ll_lli_init(struct ll_inode_info *lli) ...@@ -863,15 +863,6 @@ void ll_lli_init(struct ll_inode_info *lli)
mutex_init(&lli->lli_layout_mutex); mutex_init(&lli->lli_layout_mutex);
} }
static inline int ll_bdi_register(struct backing_dev_info *bdi)
{
static atomic_t ll_bdi_num = ATOMIC_INIT(0);
bdi->name = "lustre";
return bdi_register(bdi, NULL, "lustre-%d",
atomic_inc_return(&ll_bdi_num));
}
int ll_fill_super(struct super_block *sb, struct vfsmount *mnt) int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
{ {
struct lustre_profile *lprof = NULL; struct lustre_profile *lprof = NULL;
...@@ -881,6 +872,7 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt) ...@@ -881,6 +872,7 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
char *profilenm = get_profile_name(sb); char *profilenm = get_profile_name(sb);
struct config_llog_instance *cfg; struct config_llog_instance *cfg;
int err; int err;
static atomic_t ll_bdi_num = ATOMIC_INIT(0);
CDEBUG(D_VFSTRACE, "VFS Op: sb %p\n", sb); CDEBUG(D_VFSTRACE, "VFS Op: sb %p\n", sb);
...@@ -903,16 +895,11 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt) ...@@ -903,16 +895,11 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
if (err) if (err)
goto out_free; goto out_free;
err = bdi_init(&lsi->lsi_bdi); err = super_setup_bdi_name(sb, "lustre-%d",
if (err) atomic_inc_return(&ll_bdi_num));
goto out_free;
lsi->lsi_flags |= LSI_BDI_INITIALIZED;
lsi->lsi_bdi.capabilities = 0;
err = ll_bdi_register(&lsi->lsi_bdi);
if (err) if (err)
goto out_free; goto out_free;
sb->s_bdi = &lsi->lsi_bdi;
/* kernel >= 2.6.38 store dentry operations in sb->s_d_op. */ /* kernel >= 2.6.38 store dentry operations in sb->s_d_op. */
sb->s_d_op = &ll_d_ops; sb->s_d_op = &ll_d_ops;
...@@ -1033,11 +1020,6 @@ void ll_put_super(struct super_block *sb) ...@@ -1033,11 +1020,6 @@ void ll_put_super(struct super_block *sb)
if (profilenm) if (profilenm)
class_del_profile(profilenm); class_del_profile(profilenm);
if (lsi->lsi_flags & LSI_BDI_INITIALIZED) {
bdi_destroy(&lsi->lsi_bdi);
lsi->lsi_flags &= ~LSI_BDI_INITIALIZED;
}
ll_free_sbi(sb); ll_free_sbi(sb);
lsi->lsi_llsbi = NULL; lsi->lsi_llsbi = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment