btrfs-progs: Set info->periodic.timer_fd to 0 in init-fail
authorZhao Lei <zhaolei@cn.fujitsu.com>
Mon, 27 Jul 2015 12:24:30 +0000 (20:24 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 31 Aug 2015 17:25:10 +0000 (19:25 +0200)
In current code, (info->periodic.timer_fd == 0) means it is not
valid, as:
  if (info->periodic.timer_fd) {
      close(info->periodic.timer_fd);
      ...

We need set its value from -1 to 0 in create-fail case, to make
code like above works.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
task-utils.c

index 768be94..58f5195 100644 (file)
@@ -94,8 +94,10 @@ int task_period_start(struct task_info *info, unsigned int period_ms)
                return -1;
 
        info->periodic.timer_fd = timerfd_create(CLOCK_MONOTONIC, 0);
-       if (info->periodic.timer_fd == -1)
+       if (info->periodic.timer_fd == -1) {
+               info->periodic.timer_fd = 0;
                return info->periodic.timer_fd;
+       }
 
        info->periodic.wakeups_missed = 0;