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

Commit 58a818f5 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Christoph Hellwig
Browse files

hfsplus: remove the rsrc_inodes list



We never walk the list - the only reason for it is to make the resource fork
inodes appear hashed to the writeback code.  Borrow a trick from JFS to do
that without needing a list head.

Signed-off-by: default avatarChristoph Hellwig <hch@tuxera.com>
parent 66e5db05
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -145,8 +145,6 @@ struct hfsplus_sb_info {
	int part, session;

	unsigned long flags;

	struct hlist_head rsrc_inodes;
};

#define HFSPLUS_SB_WRITEBACKUP	0x0001
+9 −1
Original line number Diff line number Diff line
@@ -204,7 +204,15 @@ static struct dentry *hfsplus_file_lookup(struct inode *dir, struct dentry *dent
	hip->rsrc_inode = dir;
	HFSPLUS_I(dir)->rsrc_inode = inode;
	igrab(dir);
	hlist_add_head(&inode->i_hash, &HFSPLUS_SB(sb)->rsrc_inodes);

	/*
	 * __mark_inode_dirty expects inodes to be hashed.  Since we don't
	 * want resource fork inodes in the regular inode space, we make them
	 * appear hashed, but do not put on any lists.  hlist_del()
	 * will work fine and require no locking.
	 */
	inode->i_hash.pprev = &inode->i_hash.next;

	mark_inode_dirty(inode);
out:
	d_add(dentry, inode);
+0 −1
Original line number Diff line number Diff line
@@ -318,7 +318,6 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
		return -ENOMEM;

	sb->s_fs_info = sbi;
	INIT_HLIST_HEAD(&sbi->rsrc_inodes);
	mutex_init(&sbi->alloc_mutex);
	hfsplus_fill_defaults(sbi);
	if (!hfsplus_parse_options(data, sbi)) {