diff options
Diffstat (limited to 'drivers/isdn')
-rw-r--r-- | drivers/isdn/capi/capifs.c | 7 |
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 | ||