]> git.pld-linux.org Git - packages/xfsprogs.git/blobdiff - xfsprogs-miscfix-v2.patch
- up to 3.1.10
[packages/xfsprogs.git] / xfsprogs-miscfix-v2.patch
index a47d926d4105716360fa75ba3becbf65c955931a..11e8c13feaf67e46a14f767d181dc13f5f21c948 100644 (file)
  TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
                mdrestore repair rtcp m4 man doc po debian
  
+--- xfsprogs-3.1.10/libxcmd/input.c~   2012-12-13 22:29:24.000000000 +0100
++++ xfsprogs-3.1.10/libxcmd/input.c    2012-12-14 07:01:24.852839169 +0100
+@@ -88,7 +88,7 @@
+       if (!line)
+               return NULL;
+-      printf(get_prompt());
++      printf("%s", get_prompt());
+       fflush(stdout);
+       if (!fgets(line, MAXREADLINESZ, stdin)) {
+               free(line);
+--- /dev/null  2011-06-01 08:46:43.490033582 +0200
++++ xfsprogs/io/sync_file_range.c      2012-11-12 18:54:28.047526230 +0100
+@@ -0,0 +1,107 @@
++/*
++ * Copyright (c) 2012 Red Hat, Inc.
++ * All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it would be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write the Free Software Foundation,
++ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#include <xfs/xfs.h>
++#include <xfs/command.h>
++#include <xfs/input.h>
++#include "init.h"
++#include "io.h"
++
++static cmdinfo_t sync_range_cmd;
++
++static void
++sync_range_help(void)
++{
++      printf(_(
++"\n"
++" Trigger specific writeback commands on a range of the current file\n"
++"\n"
++" With no options, the SYNC_FILE_RANGE_WRITE is implied.\n"
++" -a -- wait for IO to finish after writing (SYNC_FILE_RANGE_WAIT_AFTER).\n"
++" -b -- wait for IO to finish before writing (SYNC_FILE_RANGE_WAIT_BEFORE).\n"
++" -w -- write dirty data in range (SYNC_FILE_RANGE_WRITE).\n"
++"\n"));
++}
++
++static int
++sync_range_f(
++      int             argc,
++      char            **argv)
++{
++      off64_t         offset = 0, length = 0;
++      int             c, sync_mode = 0;
++      size_t          blocksize, sectsize;
++
++      while ((c = getopt(argc, argv, "abw")) != EOF) {
++              switch (c) {
++              case 'a':
++                      sync_mode = SYNC_FILE_RANGE_WAIT_AFTER;
++                      break;
++              case 'b':
++                      sync_mode = SYNC_FILE_RANGE_WAIT_BEFORE;
++                      break;
++              case 'w':
++                      sync_mode = SYNC_FILE_RANGE_WRITE;
++                      break;
++              default:
++                      return command_usage(&sync_range_cmd);
++              }
++      }
++
++      /* default to just starting writeback on the range */
++      if (!sync_mode)
++              sync_mode = SYNC_FILE_RANGE_WRITE;
++
++      if (optind != argc - 2)
++              return command_usage(&sync_range_cmd);
++      init_cvtnum(&blocksize, &sectsize);
++      offset = cvtnum(blocksize, sectsize, argv[optind]);
++      if (offset < 0) {
++              printf(_("non-numeric offset argument -- %s\n"),
++                      argv[optind]);
++              return 0;
++      }
++      optind++;
++      length = cvtnum(blocksize, sectsize, argv[optind]);
++      if (length < 0) {
++              printf(_("non-numeric length argument -- %s\n"),
++                      argv[optind]);
++              return 0;
++      }
++
++      if (sync_file_range(file->fd, offset, length, sync_mode) < 0) {
++              perror("sync_file_range");
++              return 0;
++      }
++      return 0;
++}
++
++void
++sync_range_init(void)
++{
++      sync_range_cmd.name = "sync_range";
++      sync_range_cmd.cfunc = sync_range_f;
++      sync_range_cmd.argmin = 2;
++      sync_range_cmd.argmax = -1;
++      sync_range_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
++      sync_range_cmd.args = _("[-abw] off len");
++      sync_range_cmd.oneline = _("Control writeback on a range of a file");
++      sync_range_cmd.help = sync_range_help;
++
++      add_command(&sync_range_cmd);
++}
This page took 0.073337 seconds and 4 git commands to generate.