[CRIU] [PATCH 1/4] fsnotify: Make open_inotify_fd and open_fanotify_fd to look similar

Cyrill Gorcunov gorcunov at openvz.org
Thu Sep 4 11:23:35 PDT 2014


Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 fsnotify.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/fsnotify.c b/fsnotify.c
index 33563eba800b..1c348ce5a0d0 100644
--- a/fsnotify.c
+++ b/fsnotify.c
@@ -588,16 +588,17 @@ static int open_inotify_fd(struct file_desc *d)
 
 	list_for_each_entry(wd_info, &info->marks, list) {
 		pr_info("\tRestore %d wd for 0x%08x\n", wd_info->iwe->wd, wd_info->iwe->id);
-		if (restore_one_inotify(tmp, wd_info)) {
-			close_safe(&tmp);
-			break;
-		}
+		if (restore_one_inotify(tmp, wd_info))
+			goto err;
 	}
 
 	if (restore_fown(tmp, info->ife->fown))
-		close_safe(&tmp);
+		goto err;
 
 	return tmp;
+err:
+	close_safe(&tmp);
+	return -1;
 }
 
 static int open_fanotify_fd(struct file_desc *d)
@@ -605,7 +606,7 @@ static int open_fanotify_fd(struct file_desc *d)
 	struct fsnotify_file_info *info;
 	struct fsnotify_mark_info *mark;
 	unsigned int flags = 0;
-	int ret;
+	int tmp;
 
 	info = container_of(d, struct fsnotify_file_info, d);
 
@@ -615,25 +616,26 @@ static int open_fanotify_fd(struct file_desc *d)
 	if (info->ffe->flags & O_NONBLOCK)
 		flags |= FAN_NONBLOCK;
 
-	ret = sys_fanotify_init(flags, info->ffe->evflags);
-	if (ret < 0) {
-		errno = -ret;
-		pr_perror("Can't init fanotify mark (%d)", ret);
+	tmp = sys_fanotify_init(flags, info->ffe->evflags);
+	if (tmp < 0) {
+		errno = -tmp;
+		pr_perror("Can't init fanotify mark (%d)", tmp);
 		return -1;
 	}
 
 	list_for_each_entry(mark, &info->marks, list) {
 		pr_info("\tRestore fanotify for 0x%08x\n", mark->fme->id);
-		if (restore_one_fanotify(ret, mark)) {
-			close_safe(&ret);
-			break;
-		}
+		if (restore_one_fanotify(tmp, mark))
+			goto err;
 	}
 
-	if (restore_fown(ret, info->ffe->fown))
-		close_safe(&ret);
+	if (restore_fown(tmp, info->ffe->fown))
+		goto err;
 
-	return ret;
+	return tmp;
+err:
+	close_safe(&tmp);
+	return -1;
 }
 
 static struct file_desc_ops inotify_desc_ops = {
-- 
1.9.3



More information about the CRIU mailing list