[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120107044743.3366.16848.stgit@elm3c44.beaverton.ibm.com>
Date: Fri, 06 Jan 2012 20:47:43 -0800
From: "Darrick J. Wong" <djwong@...ibm.com>
To: Theodore Tso <tytso@....edu>, "Darrick J. Wong" <djwong@...ibm.com>
Cc: linux-ext4@...r.kernel.org
Subject: [PATCH] libext2fs: Only link an inode into a directory once
The ext2fs_link helper function link_proc does not check the value of ls->done,
which means that if the function finds multiple empty spaces that will fit the
new directory entry, it will create a directory entry in each of the spaces.
Instead of doing that, check the done value and don't do anything more if we've
already added the directory entry.
Signed-off-by: Darrick J. Wong <djwong@...ibm.com>
---
lib/ext2fs/link.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/lib/ext2fs/link.c b/lib/ext2fs/link.c
index 2d03b57..2f4f54a 100644
--- a/lib/ext2fs/link.c
+++ b/lib/ext2fs/link.c
@@ -42,6 +42,9 @@ static int link_proc(struct ext2_dir_entry *dirent,
unsigned int rec_len, min_rec_len, curr_rec_len;
int ret = 0;
+ if (ls->done)
+ return 0;
+
rec_len = EXT2_DIR_REC_LEN(ls->namelen);
ls->err = ext2fs_get_rec_len(ls->fs, dirent, &curr_rec_len);
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists