Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83973451 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  vfs: make unlink() and rmdir() return ENOENT in preference to EROFS
  lmLogOpen() broken failure exit
  usb: remove bad dput after dentry_unhash
  more conservative S_NOSEC handling
parents 59c5f46f e6bc45d6
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -389,7 +389,6 @@ static int usbfs_rmdir(struct inode *dir, struct dentry *dentry)
	mutex_unlock(&inode->i_mutex);
	if (!error)
		d_delete(dentry);
	dput(dentry);
	return error;
}

+1 −1
Original line number Diff line number Diff line
@@ -825,7 +825,7 @@ static struct dentry *btrfs_mount(struct file_system_type *fs_type, int flags,
	} else {
		char b[BDEVNAME_SIZE];

		s->s_flags = flags;
		s->s_flags = flags | MS_NOSEC;
		strlcpy(s->s_id, bdevname(bdev, b), sizeof(s->s_id));
		error = btrfs_fill_super(s, fs_devices, data,
					 flags & MS_SILENT ? 1 : 0);
+2 −0
Original line number Diff line number Diff line
@@ -921,6 +921,8 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
	if (sb->s_flags & MS_MANDLOCK)
		goto err;

	sb->s_flags &= ~MS_NOSEC;

	if (!parse_fuse_opt((char *) data, &d, is_bdev))
		goto err;

+1 −1
Original line number Diff line number Diff line
@@ -1123,7 +1123,7 @@ int lmLogOpen(struct super_block *sb)
	bdev = blkdev_get_by_dev(sbi->logdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL,
				 log);
	if (IS_ERR(bdev)) {
		rc = -PTR_ERR(bdev);
		rc = PTR_ERR(bdev);
		goto free;
	}

+7 −4
Original line number Diff line number Diff line
@@ -2624,6 +2624,10 @@ static long do_rmdir(int dfd, const char __user *pathname)
	error = PTR_ERR(dentry);
	if (IS_ERR(dentry))
		goto exit2;
	if (!dentry->d_inode) {
		error = -ENOENT;
		goto exit3;
	}
	error = mnt_want_write(nd.path.mnt);
	if (error)
		goto exit3;
@@ -2709,10 +2713,9 @@ static long do_unlinkat(int dfd, const char __user *pathname)
	error = PTR_ERR(dentry);
	if (!IS_ERR(dentry)) {
		/* Why not before? Because we want correct error value */
		if (nd.last.name[nd.last.len])
			goto slashes;
		inode = dentry->d_inode;
		if (inode)
		if (nd.last.name[nd.last.len] || !inode)
			goto slashes;
		ihold(inode);
		error = mnt_want_write(nd.path.mnt);
		if (error)
Loading