Commit 015c21ba authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull mount fixes from Al Viro:
 "A couple of regressions from the mount series"

* 'work.mount3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  vfs: add missing blkdev_put() in get_tree_bdev()
  shmem: fix LSM options parsing
parents 5e48e55f 6fcf0c72
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1300,6 +1300,7 @@ int get_tree_bdev(struct fs_context *fc,
	mutex_lock(&bdev->bd_fsfreeze_mutex);
	if (bdev->bd_fsfreeze_count > 0) {
		mutex_unlock(&bdev->bd_fsfreeze_mutex);
		blkdev_put(bdev, mode);
		warnf(fc, "%pg: Can't mount, blockdev is frozen", bdev);
		return -EBUSY;
	}
@@ -1308,8 +1309,10 @@ int get_tree_bdev(struct fs_context *fc,
	fc->sget_key = bdev;
	s = sget_fc(fc, test_bdev_super_fc, set_bdev_super_fc);
	mutex_unlock(&bdev->bd_fsfreeze_mutex);
	if (IS_ERR(s))
	if (IS_ERR(s)) {
		blkdev_put(bdev, mode);
		return PTR_ERR(s);
	}

	if (s->s_root) {
		/* Don't summarily change the RO/RW state. */
+6 −0
Original line number Diff line number Diff line
@@ -3482,6 +3482,12 @@ static int shmem_parse_options(struct fs_context *fc, void *data)
{
	char *options = data;

	if (options) {
		int err = security_sb_eat_lsm_opts(options, &fc->security);
		if (err)
			return err;
	}

	while (options != NULL) {
		char *this_char = options;
		for (;;) {