[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified
From: |
Eric Blake |
Subject: |
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified |
Date: |
Mon, 26 Jan 2015 09:02:50 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 01/24/2015 05:48 PM, Giuseppe Scrivano wrote:
> * configure.ac: Check if syncfs(2) is available.
> * NEWS: Mention the new feature.
> * doc/coreutils.texi (sync invocation): Document the new feature.
> * src/sync.c (usage): Describe that arguments are now accepted.
> (main): Use syncfs(2) to flush buffers for the file system which
> contain the specified arguments. Silently fallback to sync(2) on
> errors.
> ---
> @@ -65,9 +68,33 @@ main (int argc, char **argv)
> if (getopt_long (argc, argv, "", NULL, NULL) != -1)
> usage (EXIT_FAILURE);
>
> +#if HAVE_SYNCFS
> + /* If arguments are specified, use syncfs on any of them.
> + On any error, silently fallback to sync. */
> if (optind < argc)
> - error (0, 0, _("ignoring all arguments"));
> + {
> + while (optind < argc)
> + {
> + int fd = open (argv[optind], O_RDONLY);
> + if (fd < 0)
> + goto sync;
> +
> + if (syncfs (fd) < 0)
> + {
> + close (fd);
> + goto sync;
> + }
> +
> + if (close (fd) < 0)
> + goto sync;
> +
> + optind++;
> + }
> + return EXIT_SUCCESS;
> + }
> +#endif
>
> +sync:
This label is unused if !HAVE_SYNCFS. I suggest moving it inside the #if.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, (continued)
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Bernhard Voelker, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/25
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/26
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Giuseppe Scrivano, 2015/01/27
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/27
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Bernhard Voelker, 2015/01/28
- bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified, Pádraig Brady, 2015/01/28
bug#19681: [PATCH] sync: use syncfs(2) if any argument is specified,
Eric Blake <=