summaryrefslogtreecommitdiff
path: root/tests/fs-tests/integrity/integck.c
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-18 14:06:40 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-22 14:29:52 +0300
commit02fba0803844e2205397e6eab8983eae6581574f (patch)
tree950dcb85a539cb77b9339fb2abc2d22431f7bac0 /tests/fs-tests/integrity/integck.c
parent6c9452e6985d144d000a97e390cd430a13cae501 (diff)
fs-tests: integck: teach symlink_remove return error on removal failure
When 'symlink_remove()' fails to unling a symlink - return an error to the calling function. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'tests/fs-tests/integrity/integck.c')
-rw-r--r--tests/fs-tests/integrity/integck.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index f56ff66..a486229 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -482,7 +482,7 @@ static int dir_new(struct dir_info *parent, const char *name)
static int file_delete(struct file_info *file);
static int file_unlink(struct dir_entry_info *entry);
-static void symlink_remove(struct symlink_info *symlink);
+static int symlink_remove(struct symlink_info *symlink);
static void dir_remove(struct dir_info *dir)
{
@@ -1851,16 +1851,20 @@ static int symlink_new(struct dir_info *dir, const char *nm)
return 0;
}
-static void symlink_remove(struct symlink_info *symlink)
+static int symlink_remove(struct symlink_info *symlink)
{
char *path;
path = dir_path(symlink->entry->parent, symlink->entry->name);
+ if (unlink(path) != 0) {
+ pcv("cannot unlink symlink %s", path);
+ free(path);
+ return -1;
+ }
remove_dir_entry(symlink->entry);
-
- CHECK(unlink(path) == 0);
free(path);
+ return 0;
}
static int operate_on_dir(struct dir_info *dir);
@@ -1915,7 +1919,7 @@ static int operate_on_entry(struct dir_entry_info *entry)
symlink_check(entry->symlink);
/* If shrinking, 1 time in 50, remove a symlink */
if (shrink && random_no(50) == 0)
- symlink_remove(entry->symlink);
+ return symlink_remove(entry->symlink);
return 0;
}
if (entry->type == 'd') {