diff options
Diffstat (limited to 'fs/namespace.c')
| -rw-r--r-- | fs/namespace.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 4fc302c2a0e0..4f6f7635b59c 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
| @@ -750,7 +750,7 @@ struct proc_fs_info { | |||
| 750 | const char *str; | 750 | const char *str; |
| 751 | }; | 751 | }; |
| 752 | 752 | ||
| 753 | static void show_sb_opts(struct seq_file *m, struct super_block *sb) | 753 | static int show_sb_opts(struct seq_file *m, struct super_block *sb) |
| 754 | { | 754 | { |
| 755 | static const struct proc_fs_info fs_info[] = { | 755 | static const struct proc_fs_info fs_info[] = { |
| 756 | { MS_SYNCHRONOUS, ",sync" }, | 756 | { MS_SYNCHRONOUS, ",sync" }, |
| @@ -764,6 +764,8 @@ static void show_sb_opts(struct seq_file *m, struct super_block *sb) | |||
| 764 | if (sb->s_flags & fs_infop->flag) | 764 | if (sb->s_flags & fs_infop->flag) |
| 765 | seq_puts(m, fs_infop->str); | 765 | seq_puts(m, fs_infop->str); |
| 766 | } | 766 | } |
| 767 | |||
| 768 | return security_sb_show_options(m, sb); | ||
| 767 | } | 769 | } |
| 768 | 770 | ||
| 769 | static void show_mnt_opts(struct seq_file *m, struct vfsmount *mnt) | 771 | static void show_mnt_opts(struct seq_file *m, struct vfsmount *mnt) |
| @@ -806,11 +808,14 @@ static int show_vfsmnt(struct seq_file *m, void *v) | |||
| 806 | seq_putc(m, ' '); | 808 | seq_putc(m, ' '); |
| 807 | show_type(m, mnt->mnt_sb); | 809 | show_type(m, mnt->mnt_sb); |
| 808 | seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw"); | 810 | seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw"); |
| 809 | show_sb_opts(m, mnt->mnt_sb); | 811 | err = show_sb_opts(m, mnt->mnt_sb); |
| 812 | if (err) | ||
| 813 | goto out; | ||
| 810 | show_mnt_opts(m, mnt); | 814 | show_mnt_opts(m, mnt); |
| 811 | if (mnt->mnt_sb->s_op->show_options) | 815 | if (mnt->mnt_sb->s_op->show_options) |
| 812 | err = mnt->mnt_sb->s_op->show_options(m, mnt); | 816 | err = mnt->mnt_sb->s_op->show_options(m, mnt); |
| 813 | seq_puts(m, " 0 0\n"); | 817 | seq_puts(m, " 0 0\n"); |
| 818 | out: | ||
| 814 | return err; | 819 | return err; |
| 815 | } | 820 | } |
| 816 | 821 | ||
| @@ -865,10 +870,13 @@ static int show_mountinfo(struct seq_file *m, void *v) | |||
| 865 | seq_putc(m, ' '); | 870 | seq_putc(m, ' '); |
| 866 | mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none"); | 871 | mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none"); |
| 867 | seq_puts(m, sb->s_flags & MS_RDONLY ? " ro" : " rw"); | 872 | seq_puts(m, sb->s_flags & MS_RDONLY ? " ro" : " rw"); |
| 868 | show_sb_opts(m, sb); | 873 | err = show_sb_opts(m, sb); |
| 874 | if (err) | ||
| 875 | goto out; | ||
| 869 | if (sb->s_op->show_options) | 876 | if (sb->s_op->show_options) |
| 870 | err = sb->s_op->show_options(m, mnt); | 877 | err = sb->s_op->show_options(m, mnt); |
| 871 | seq_putc(m, '\n'); | 878 | seq_putc(m, '\n'); |
| 879 | out: | ||
| 872 | return err; | 880 | return err; |
| 873 | } | 881 | } |
| 874 | 882 | ||
