[PATCH 25/35] fs-tests: integck: make file_open return error on failure
Artem Bityutskiy
dedekind1 at gmail.com
Wed Apr 20 06:18:58 EDT 2011
From: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
Make 'file_open()' return an error to the caller if it fails to open
the file.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
---
tests/fs-tests/integrity/integck.c | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index c3c3813..3498c76 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -738,7 +738,7 @@ static void file_info_display(struct file_info *file)
normsg(" ============================================");
}
-static struct fd_info *file_open(struct file_info *file)
+static int file_open(struct file_info *file)
{
int fd, flags = O_RDWR;
char *path;
@@ -747,9 +747,14 @@ static struct fd_info *file_open(struct file_info *file)
if (random_no(100) == 1)
flags |= O_SYNC;
fd = open(path, flags);
- CHECK(fd != -1);
+ if (fd == -1) {
+ pcv("cannot open file %s", path);
+ free(path);
+ return -1;
+ }
free(path);
- return add_fd(file, fd);
+ add_fd(file, fd);
+ return 0;
}
/*
@@ -1884,20 +1889,15 @@ static int operate_on_dir(struct dir_info *dir);
static int operate_on_file(struct file_info *file)
{
/* Try to keep at least 10 files open */
- if (open_files_count < 10) {
- file_open(file);
- return 0;
- }
+ if (open_files_count < 10)
+ return file_open(file);
/* Try to keep about 20 files open */
- if (open_files_count < 20 && random_no(2) == 0) {
- file_open(file);
- return 0;
- }
+ if (open_files_count < 20 && random_no(2) == 0)
+ return file_open(file);
/* Try to keep up to 40 files open */
- if (open_files_count < 40 && random_no(20) == 0) {
- file_open(file);
- return 0;
- }
+ if (open_files_count < 40 && random_no(20) == 0)
+ return file_open(file);
+
/* Occasionly truncate */
if (shrink && random_no(100) == 0) {
file_truncate_file(file);
--
1.7.2.3
More information about the linux-mtd
mailing list