diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index 6f3e7d1b7030e4592ae3752fcd7555892e22d464..9f5e7b587a631bcb99af6b948d413921904765a8 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -867,6 +867,7 @@ void ll_umount_begin(struct vfsmount *vfsmnt, int flags); void ll_umount_begin(struct super_block *sb); #endif int ll_remount_fs(struct super_block *sb, int *flags, char *data); +int ll_show_options(struct seq_file *seq, struct vfsmount *vfs); int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req, struct super_block *); void lustre_dump_dentry(struct dentry *, int recur); diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 78f9a33a15ac56225b3c3984b035327ad16f5e23..2fc698ccc59f624c7ffd4748bc2e66b197d4039b 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -2403,3 +2403,28 @@ void ll_finish_md_op_data(struct md_op_data *op_data) capa_put(op_data->op_capa2); OBD_FREE_PTR(op_data); } + +int ll_show_options(struct seq_file *seq, struct vfsmount *vfs) +{ + struct ll_sb_info *sbi; + + LASSERT((seq != NULL) && (vfs != NULL)); + sbi = ll_s2sbi(vfs->mnt_sb); + + if (sbi->ll_flags & LL_SBI_NOLCK) + seq_puts(seq, ",nolock"); + + if (sbi->ll_flags & LL_SBI_FLOCK) + seq_puts(seq, ",flock"); + + if (sbi->ll_flags & LL_SBI_LOCALFLOCK) + seq_puts(seq, ",localflock"); + + if (sbi->ll_flags & LL_SBI_USER_XATTR) + seq_puts(seq, ",user_xattr"); + + if (sbi->ll_flags & LL_SBI_ACL) + seq_puts(seq, ",acl"); + + RETURN(0); +} diff --git a/lustre/llite/super25.c b/lustre/llite/super25.c index 549d32017b0ca0855018deadc6797906a597ef01..979f0c493c4664f0b17d24c2a3b99fde276e1f00 100644 --- a/lustre/llite/super25.c +++ b/lustre/llite/super25.c @@ -99,6 +99,7 @@ struct super_operations lustre_super_operations = .statfs = ll_statfs, .umount_begin = ll_umount_begin, .remount_fs = ll_remount_fs, + .show_options = ll_show_options, };