[PATCH] xfs_io: deprecate the "-F" foreign flag
Mark Tinguely
tinguely at sgi.com
Thu Mar 8 15:39:52 CST 2012
On 02/02/12 11:35, Eric Sandeen wrote:
> There's no real reason to force the user to specify "-F" for non-xfs
> files, when we can just test for that after it's opened.
>
> * Remove the -F flag from usage()& man pages, but still accept it.
> * Set IO_FOREIGN when we open the file, if the fd tests as non-xfs.
>
> Signed-off-by: Eric Sandeen<sandeen at redhat.com>
> ---
> diff --git a/io/open.c b/io/open.c
> index f1a6501..97631e2 100644
> --- a/io/open.c
> +++ b/io/open.c
> @@ -163,17 +163,9 @@ openfile(
> }
> }
>
> - if (!geom)
> + if (!platform_test_xfs_fd(fd))
> return fd;
>
> - if (!platform_test_xfs_fd(fd)) {
> - fprintf(stderr, _("%s: specified file "
> - "[\"%s\"] is not on an XFS filesystem\n"),
> - progname, path);
> - close(fd);
> - return -1;
> - }
> -
> if (xfsctl(path, fd, XFS_IOC_FSGEOMETRY, geom)< 0) {
> perror("XFS_IOC_FSGEOMETRY");
> close(fd);
> @@ -282,10 +274,10 @@ open_f(
> return 0;
> }
>
> - while ((c = getopt(argc, argv, "FRacdfm:nrstx")) != EOF) {
> + while ((c = getopt(argc, argv, "Racdfm:nrstx")) != EOF) {
> switch (c) {
> case 'F':
> - flags |= IO_FOREIGN;
> + /* Ignored / deprecated now, handled automatically */
> break;
The "-F" is still in the command line open's help in open.
cxfs_io> help open
open [-acdrstx] [path] -- open the file specified by path
opens a new file in the requested mode
Example:
'open -cd /tmp/data' - creates/opens data file read-write for direct IO
Opens a file for subsequent use by all of the other xfs_io commands.
With no arguments, open uses the stat command to show the current file.
-F -- foreign filesystem file, disallow XFS-specific commands
-a -- open with the O_APPEND flag (append-only mode)
-d -- open with O_DIRECT (non-buffered IO, note alignment constraints)
-f -- open with O_CREAT (create the file if it doesn't exist)
-m -- permissions to use in case a new file is created (default 0600)
-n -- open with O_NONBLOCK
-r -- open with O_RDONLY, the default is O_RDWR
-s -- open with O_SYNC
-t -- open with O_TRUNC (truncate the file to zero length if it exists)
-R -- mark the file as a realtime XFS file immediately after opening it
Note1: usually read/write direct IO requests must be blocksize aligned;
some kernels, however, allow sectorsize alignment for direct IO.
Note2: the bmap for non-regular files can be obtained provided the file
was opened correctly (in particular, must be opened read-only).
The "F" was taken out of the command line's getopt(), so it can't be
specified. I guess either put the "F" back in the the open.c getopt() or
take it complete from the command line.
xfs_io> open -F somefile
open: invalid option -- 'F'
open [-acdrstx] [path] -- open the file specified by path
Thanks,
--Mark Tinguely
tinguely at sgi.com
More information about the xfs
mailing list