so that server mount points (like /mnt/ostXXX) show
valid data on any backend (ldiskfs, zfs)
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I6ad0546d7630769083e8aea69547a6bb3256784f
Reviewed-on: http://review.whamcloud.com/3652
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
static int server_statfs (struct dentry *dentry, cfs_kstatfs_t *buf)
{
struct super_block *sb = dentry->d_sb;
- struct vfsmount *mnt = s2lsi(sb)->lsi_srv_mnt;
+ struct lustre_sb_info *lsi = s2lsi(sb);
+ struct obd_statfs statfs;
+ int rc;
ENTRY;
- if (mnt && mnt->mnt_sb && mnt->mnt_sb->s_op->statfs) {
- int rc = mnt->mnt_sb->s_op->statfs(mnt->mnt_root, buf);
- if (!rc) {
+ if (lsi->lsi_dt_dev) {
+ rc = dt_statfs(NULL, lsi->lsi_dt_dev, &statfs);
+ if (rc == 0) {
+ statfs_unpack(buf, &statfs);
buf->f_type = sb->s_magic;
RETURN(0);
}