ufs: implement show_options
PATCH 1/1 ufs: implement show_options
This patch contains implementation of show_options method for UFS, it depend on add-in-sunos-41x-compatible-mode-for-ufs.patch and add-in-sunos-41x-compatible-mode-for-ufs-fix.patch.
Signed-off-by Evgeniy Dushistov <[email protected]>
---
fs/ufs/super.c +39 -4
@@ -88,6 +88,8 @@#include <linux/buffer_head.h> #include <linux/vfs.h> #include <linux/log2.h> +#include <linux/mount.h> +#include <linux/seq_file.h> #include "swab.h" #include "util.h"
@@ -286,10 +288,21 @@ void ufs_warning (struct super_block * s }enum { - Opt_type_old, Opt_type_sunx86, Opt_type_sun, Opt_type_sunos, Opt_type_44bsd, - Opt_type_ufs2, Opt_type_hp, Opt_type_nextstepcd, Opt_type_nextstep, - Opt_type_openstep, Opt_onerror_panic, Opt_onerror_lock, - Opt_onerror_umount, Opt_onerror_repair, Opt_err + Opt_type_old =UFS_MOUNT_UFSTYPE_OLD , + Opt_type_sunx86 = UFS_MOUNT_UFSTYPE_SUNx86, + Opt_type_sun =UFS_MOUNT_UFSTYPE_SUN , + Opt_type_sunos =UFS_MOUNT_UFSTYPE_SUNOS , + Opt_type_44bsd =UFS_MOUNT_UFSTYPE_44BSD , + Opt_type_ufs2 =UFS_MOUNT_UFSTYPE_UFS2 , + Opt_type_hp =UFS_MOUNT_UFSTYPE_HP , + Opt_type_nextstepcd =UFS_MOUNT_UFSTYPE_NEXTSTEP_CD , + Opt_type_nextstep =UFS_MOUNT_UFSTYPE_NEXTSTEP , + Opt_type_openstep =UFS_MOUNT_UFSTYPE_OPENSTEP , + Opt_onerror_panic =UFS_MOUNT_ONERROR_PANIC , + Opt_onerror_lock =UFS_MOUNT_ONERROR_LOCK , + Opt_onerror_umount =UFS_MOUNT_ONERROR_UMOUNT , + Opt_onerror_repair =UFS_MOUNT_ONERROR_REPAIR , + Opt_err };static match_table_t tokens = {
@@ -304,6 +317,7 @@ static match_table_t tokens = { {Opt_type_nextstepcd, "ufstype=nextstep-cd"}, {Opt_type_nextstep, "ufstype=nextstep"}, {Opt_type_openstep, "ufstype=openstep"}, +/*end of possible ufs types */ {Opt_onerror_panic, "onerror=panic"}, {Opt_onerror_lock, "onerror=lock"}, {Opt_onerror_umount, "onerror=umount"},
@@ -1209,6 +1223,26 @@ static int ufs_remount (struct super_bloreturn 0 ; } +static int ufs_show_options (struct seq_file *seq,struct vfsmount *vfs) +{ +struct ufs_sb_info *sbi =UFS_SB (vfs->mnt_sb); +unsigned mval = sbi->s_mount_opt &UFS_MOUNT_UFSTYPE ; +struct match_token *tp = tokens; + +while (tp->token != Opt_onerror_panic && tp->token != mval) + ++tp; +BUG_ON (tp->token == Opt_onerror_panic); +seq_printf (seq,",%s" , tp->pattern); + + mval = sbi->s_mount_opt &UFS_MOUNT_ONERROR ; +while (tp->token != Opt_err && tp->token != mval) + ++tp; +BUG_ON (tp->token == Opt_err); +seq_printf (seq,",%s" , tp->pattern); + +return 0 ; +} +static int ufs_statfs (struct dentry *dentry,struct kstatfs *buf) {struct super_block *sb = dentry->d_sb;
@@ -1301,6 +1335,7 @@ static const struct super_operations ufs .write_super = ufs_write_super, .statfs = ufs_statfs, .remount_fs = ufs_remount, + .show_options = ufs_show_options, #ifdef CONFIG_QUOTA .quota_read = ufs_quota_read, .quota_write = ufs_quota_write,
Signature · 1 line
/Evgeniy
Quoted 6 lines
This patch contains implementation of
show_optionsmethod for UFS, it depend on add-in-sunos-41x-compatible-mode-for-ufs.patch and add-in-sunos-41x-compatible-mode-for-ufs-fix.patch.Signed-off-by Evgeniy Dushistov <[email protected]>
Thanks. I'll quite these up and submit them in a batch to Andrew.
Miklos