aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/isdn/capi/capifs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/isdn/capi/capifs.c b/drivers/isdn/capi/capifs.c
index 2dd1b57b0ba4..6d7c47ec0367 100644
--- a/drivers/isdn/capi/capifs.c
+++ b/drivers/isdn/capi/capifs.c
@@ -52,6 +52,7 @@ static int capifs_remount(struct super_block *s, int *flags, char *data)
52 gid_t gid = 0; 52 gid_t gid = 0;
53 umode_t mode = 0600; 53 umode_t mode = 0600;
54 char *this_char; 54 char *this_char;
55 char *new_opt = kstrdup(data, GFP_KERNEL);
55 56
56 this_char = NULL; 57 this_char = NULL;
57 while ((this_char = strsep(&data, ",")) != NULL) { 58 while ((this_char = strsep(&data, ",")) != NULL) {
@@ -72,11 +73,16 @@ static int capifs_remount(struct super_block *s, int *flags, char *data)
72 return -EINVAL; 73 return -EINVAL;
73 } 74 }
74 } 75 }
76
77 kfree(s->s_options);
78 s->s_options = new_opt;
79
75 config.setuid = setuid; 80 config.setuid = setuid;
76 config.setgid = setgid; 81 config.setgid = setgid;
77 config.uid = uid; 82 config.uid = uid;
78 config.gid = gid; 83 config.gid = gid;
79 config.mode = mode; 84 config.mode = mode;
85
80 return 0; 86 return 0;
81} 87}
82 88
@@ -84,6 +90,7 @@ static struct super_operations capifs_sops =
84{ 90{
85 .statfs = simple_statfs, 91 .statfs = simple_statfs,
86 .remount_fs = capifs_remount, 92 .remount_fs = capifs_remount,
93 .show_options = generic_show_options,
87}; 94};
88 95
89 96