Unverified Commit bae80473 authored by Mateusz Guzik's avatar Mateusz Guzik Committed by Christian Brauner
Browse files
parent ea382199
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5006,10 +5006,11 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
		if (IS_ENCRYPTED(inode)) {
			inode->i_op = &ext4_encrypted_symlink_inode_operations;
		} else if (ext4_inode_is_fast_symlink(inode)) {
			inode->i_link = (char *)ei->i_data;
			inode->i_op = &ext4_fast_symlink_inode_operations;
			nd_terminate_link(ei->i_data, inode->i_size,
				sizeof(ei->i_data) - 1);
			inode_set_cached_link(inode, (char *)ei->i_data,
					      inode->i_size);
		} else {
			inode->i_op = &ext4_symlink_inode_operations;
		}
+3 −1
Original line number Diff line number Diff line
@@ -3418,7 +3418,6 @@ static int ext4_symlink(struct mnt_idmap *idmap, struct inode *dir,
			inode->i_op = &ext4_symlink_inode_operations;
		} else {
			inode->i_op = &ext4_fast_symlink_inode_operations;
			inode->i_link = (char *)&EXT4_I(inode)->i_data;
		}
	}

@@ -3434,6 +3433,9 @@ static int ext4_symlink(struct mnt_idmap *idmap, struct inode *dir,
		       disk_link.len);
		inode->i_size = disk_link.len - 1;
		EXT4_I(inode)->i_disksize = inode->i_size;
		if (!IS_ENCRYPTED(inode))
			inode_set_cached_link(inode, (char *)&EXT4_I(inode)->i_data,
					      inode->i_size);
	}
	err = ext4_add_nondir(handle, dentry, &inode);
	if (handle)