diff options
Diffstat (limited to 'fs/devpts')
| -rw-r--r-- | fs/devpts/inode.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index 21165cf934ff..c68edb969441 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c | |||
| @@ -90,6 +90,15 @@ static inline struct super_block *pts_sb_from_inode(struct inode *inode) | |||
| 90 | #define PARSE_MOUNT 0 | 90 | #define PARSE_MOUNT 0 |
| 91 | #define PARSE_REMOUNT 1 | 91 | #define PARSE_REMOUNT 1 |
| 92 | 92 | ||
| 93 | /* | ||
| 94 | * parse_mount_options(): | ||
| 95 | * Set @opts to mount options specified in @data. If an option is not | ||
| 96 | * specified in @data, set it to its default value. The exception is | ||
| 97 | * 'newinstance' option which can only be set/cleared on a mount (i.e. | ||
| 98 | * cannot be changed during remount). | ||
| 99 | * | ||
| 100 | * Note: @data may be NULL (in which case all options are set to default). | ||
| 101 | */ | ||
| 93 | static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts) | 102 | static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts) |
| 94 | { | 103 | { |
| 95 | char *p; | 104 | char *p; |
| @@ -355,12 +364,9 @@ static int devpts_get_sb(struct file_system_type *fs_type, | |||
| 355 | struct pts_mount_opts opts; | 364 | struct pts_mount_opts opts; |
| 356 | struct super_block *s; | 365 | struct super_block *s; |
| 357 | 366 | ||
| 358 | memset(&opts, 0, sizeof(opts)); | 367 | error = parse_mount_options(data, PARSE_MOUNT, &opts); |
| 359 | if (data) { | 368 | if (error) |
| 360 | error = parse_mount_options(data, PARSE_MOUNT, &opts); | 369 | return error; |
| 361 | if (error) | ||
| 362 | return error; | ||
| 363 | } | ||
| 364 | 370 | ||
| 365 | if (opts.newinstance) | 371 | if (opts.newinstance) |
| 366 | s = sget(fs_type, NULL, set_anon_super, NULL); | 372 | s = sget(fs_type, NULL, set_anon_super, NULL); |
