rem: if (errors)
add: if (!ok)
context: tail_file (struct File_spec *f, off_t n_units){  int fd, errors;  int is_stdin = (STREQ (f->name, "-"));  if (is_stdin)    {      have_read_stdin = 1;      fd = STDIN_FILENO;    }  else    {      fd = open (f->name, O_RDONLY);    }  f->tailable = !(reopen_inaccessible_files && fd == -1);  if (fd == -1)    {      if (forever)	{	  f->fd = -1;	  f->errnum = errno;	  f->ignore = 0;	  f->ino = 0;	  f->dev = 0;	}      error (0, errno, "%s", pretty_name (f));      errors = 1;    }  else    {      if (print_headers)	write_header (pretty_name (f));      errors = tail (pretty_name (f), fd, n_units);      if (forever)	{	  struct stat stats;	  f->errnum = 0;	  if (fstat (fd, &stats) < 0)	    {	      errors = 1;	      f->errnum = errno;	      error (0, errno, "%s", pretty_name (f));	    }	  else if (!IS_TAILABLE_FILE_TYPE (stats.st_mode))	    {	      error (0, 0, _("%s: cannot follow end of this type of file;\ giving up on this name"),		     pretty_name (f));	      errors = 1;	      f->errnum = -1;	      f->ignore = 1;	    }	  if (errors)	    {	      close_fd (fd, pretty_name (f));	      f->fd = -1;	    }	  else	    {	      f->fd = fd;	      f->size = stats.st_size;	      f->dev = stats.st_dev;	      f->ino = stats.st_ino;	      f->n_unchanged_stats = 0;	      f->n_consecutive_size_changes = 0;	      f->ignore = 0;	    }	}      else	{	  if (!is_stdin && close (fd))	    {	      error (0, errno, "%s", pretty_name (f));	      errors = 1;	    }	}    }  return errors;}