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

Commit 722c55d1 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Christoph Hellwig
Browse files

hfsplus: remove superflous rootflags field in hfsplus_inode_info



The rootflags field in hfsplus_inode_info only caches the immutable and
append-only flags in the VFS inode, so we can easily get rid of it.

Signed-off-by: default avatarChristoph Hellwig <hch@tuxera.com>
parent f6089ff8
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ static void hfsplus_set_perms(struct inode *inode, struct hfsplus_perm *perms)
		perms->rootflags |= HFSPLUS_FLG_APPEND;
	else
		perms->rootflags &= ~HFSPLUS_FLG_APPEND;
	HFSPLUS_I(inode)->rootflags = perms->rootflags;
	HFSPLUS_I(inode)->userflags = perms->userflags;
	perms->mode = cpu_to_be16(inode->i_mode);
	perms->owner = cpu_to_be32(inode->i_uid);
+1 −1
Original line number Diff line number Diff line
@@ -188,7 +188,7 @@ struct hfsplus_inode_info {
	 * Protected by i_mutex.
	 */
	sector_t fs_blocks;
	u8 rootflags, userflags;	/* BSD system and user file flags */
	u8 userflags;		/* BSD user file flags */
	struct list_head open_dir_list;
	loff_t phys_size;

+0 −1
Original line number Diff line number Diff line
@@ -241,7 +241,6 @@ static void hfsplus_get_perms(struct inode *inode, struct hfsplus_perm *perms, i
		mode = S_IFREG | ((S_IRUGO|S_IWUGO) & ~(sbi->umask));
	inode->i_mode = mode;

	HFSPLUS_I(inode)->rootflags = perms->rootflags;
	HFSPLUS_I(inode)->userflags = perms->userflags;
	if (perms->rootflags & HFSPLUS_FLG_IMMUTABLE)
		inode->i_flags |= S_IMMUTABLE;
+11 −14
Original line number Diff line number Diff line
@@ -26,9 +26,9 @@ static int hfsplus_ioctl_getflags(struct file *file, int __user *user_flags)
	struct hfsplus_inode_info *hip = HFSPLUS_I(inode);
	unsigned int flags = 0;

	if (hip->rootflags & HFSPLUS_FLG_IMMUTABLE)
	if (inode->i_flags & S_IMMUTABLE)
		flags |= FS_IMMUTABLE_FL;
	if (hip->rootflags & HFSPLUS_FLG_APPEND)
	if (inode->i_flags |= S_APPEND)
		flags |= FS_APPEND_FL;
	if (hip->userflags & HFSPLUS_FLG_NODUMP)
		flags |= FS_NODUMP_FL;
@@ -59,8 +59,8 @@ static int hfsplus_ioctl_setflags(struct file *file, int __user *user_flags)

	mutex_lock(&inode->i_mutex);

	if (flags & (FS_IMMUTABLE_FL|FS_APPEND_FL) ||
	    hip->rootflags & (HFSPLUS_FLG_IMMUTABLE|HFSPLUS_FLG_APPEND)) {
	if ((flags & (FS_IMMUTABLE_FL|FS_APPEND_FL)) ||
	    inode->i_flags & (S_IMMUTABLE|S_APPEND)) {
		if (!capable(CAP_LINUX_IMMUTABLE)) {
			err = -EPERM;
			goto out_unlock_inode;
@@ -72,20 +72,17 @@ static int hfsplus_ioctl_setflags(struct file *file, int __user *user_flags)
		err = -EOPNOTSUPP;
		goto out_unlock_inode;
	}
	if (flags & FS_IMMUTABLE_FL) {

	if (flags & FS_IMMUTABLE_FL)
		inode->i_flags |= S_IMMUTABLE;
		hip->rootflags |= HFSPLUS_FLG_IMMUTABLE;
	} else {
	else
		inode->i_flags &= ~S_IMMUTABLE;
		hip->rootflags &= ~HFSPLUS_FLG_IMMUTABLE;
	}
	if (flags & FS_APPEND_FL) {

	if (flags & FS_APPEND_FL)
		inode->i_flags |= S_APPEND;
		hip->rootflags |= HFSPLUS_FLG_APPEND;
	} else {
	else
		inode->i_flags &= ~S_APPEND;
		hip->rootflags &= ~HFSPLUS_FLG_APPEND;
	}

	if (flags & FS_NODUMP_FL)
		hip->userflags |= HFSPLUS_FLG_NODUMP;
	else