Bug 1018751
Summary: | xfs_io: XFS_IOC_FSGEOMETRY: Inappropriate ioctl for device when pwrite to devnull resides on xfs | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Eryu Guan <eguan> | |
Component: | xfsprogs | Assignee: | Eric Sandeen <esandeen> | |
Status: | CLOSED ERRATA | QA Contact: | Eryu Guan <eguan> | |
Severity: | low | Docs Contact: | ||
Priority: | low | |||
Version: | 6.5 | CC: | branto | |
Target Milestone: | rc | |||
Target Release: | --- | |||
Hardware: | x86_64 | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | xfsprogs-3.1.1-15.el6 | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 1020057 (view as bug list) | Environment: | ||
Last Closed: | 2014-10-14 07:49:48 UTC | Type: | Bug | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | ||||
Bug Blocks: | 1020057 |
Description
Eryu Guan
2013-10-14 11:25:33 UTC
Thanks Eryu; I had found this too. Sent a patch upstream, [PATCH] xfsprogs: restrict platform_test_xfs_fd to regular files -Eric Fixed in xfsprogs-3.2.0-0.1.alpha1.el7 Sorry, getting my releases mixed up. Fixed this one in RHEL7, not RHEL6 yet. (it is very low priority, TBH, so I won't try to lobby for blocker or anything). commit fcd6fa7f6a29188a756ff8b071a152bc9d62baf4 Author: Eric Sandeen <sandeen> Date: Tue Oct 8 15:17:50 2013 +0000 xfsprogs: restrict platform_test_xfs_fd to regular files If a special file (block, char, pipe etc) resides on an xfs filesystem, platform_test_xfs_[fd|path] will return true, but a subsequent xfsctl will fail, because the file operations to support the xfs ioctls are not set up on such files (see i_fop assignments in xfs_setup_inode()). From the xfsctl manpage it's pretty clear that these functions are supposed to return true if a subsequent xfsctl can be handled, so it makes sense to exclude special files. This was showing up in xfstest generic/306, which creates the dev/null block device on an xfstest an tries to pwrite to it with xfs_io - which emitted a warning when the xfsctl trying to get geometry failed. Signed-off-by: Eric Sandeen <sandeen> Reviewed-by: Christoph Hellwig <hch> Signed-off-by: Rich Johnston <rjohnston> xfs_io now reports "is not on an XFS filesystem" [root@hp-dl388g8-03 xfstests]# grep testarea /proc/mounts /dev/mapper/vg_hpdl388g803-testlv2 /mnt/testarea/scratch xfs rw,seclabel,relatime,attr2,delaylog,logbsize=256k,sunit=512,swidth=6144,noquota 0 0 [root@hp-dl388g8-03 xfstests]# ll /mnt/testarea/scratch/ total 0 -rw-r--r--. 1 root root 0 Jun 29 11:32 bindfile crw-r--r--. 1 root root 1, 3 Jun 29 11:32 devnull crw-r--r--. 1 root root 1, 5 Jun 29 11:32 devzero lrwxrwxrwx. 1 root root 25 Jun 29 11:32 symlink -> /mnt/testarea/test/target [root@hp-dl388g8-03 xfstests]# xfs_io -c "pwrite 0 512" /mnt/testarea/scratch/devnull xfs_io: specified file ["/mnt/testarea/scratch/devnull"] is not on an XFS filesystem # but -F works fine [root@hp-dl388g8-03 xfstests]# xfs_io -F -c "pwrite 0 512" /mnt/testarea/scratch/devnull wrote 512/512 bytes at offset 0 512.000000 bytes, 1 ops; 0.0000 sec (81.380 MiB/sec and 166666.6667 ops/sec) Seems not fully fixed? Hm, shoot. Upstream, -F is deprecated so I didn't notice: d1b8818 xfs_io: deprecate the "-F" foreign flag Argh, so we've traded an invalid ioctl message for a not-xfs message, I'm sorry. :( Does this cause problems with xfstests? Using xfs_io to write to /dev/null probably doesn't matter to a customer, it's more of an internal testing usecase. I think that what would really need to be merged to fix this properly is the -F deprecation patch. How important is this for RHEL6.6? (In reply to Eric Sandeen from comment #9) > Hm, shoot. Upstream, -F is deprecated so I didn't notice: > > d1b8818 xfs_io: deprecate the "-F" foreign flag > > Argh, so we've traded an invalid ioctl message for a not-xfs message, I'm > sorry. :( > > Does this cause problems with xfstests? Yes, generic/306 is failing with different diffs now [root@hp-dl388g8-03 xfstests]# diff -u tests/generic/306.out /var/lib/xfstests/results//generic/306.out.bad --- tests/generic/306.out 2014-06-29 11:12:55.000000000 -0400 +++ /var/lib/xfstests/results//generic/306.out.bad 2014-06-30 23:59:39.206793425 -0400 @@ -2,11 +2,9 @@ == try to create new file touch: cannot touch 'SCRATCH_MNT/this_should_fail': Read-only file system == pwrite to null device -wrote 512/512 bytes at offset 0 -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +xfs_io: specified file ["/mnt/testarea/scratch/devnull"] is not on an XFS filesystem == pread from zero device -read 512/512 bytes at offset 0 -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +xfs_io: specified file ["/mnt/testarea/scratch/devzero"] is not on an XFS filesystem == truncating write to null device == appending write to null device == writing to symlink from ro fs to rw fs > > Using xfs_io to write to /dev/null probably doesn't matter to a customer, > it's more of an internal testing usecase. > > I think that what would really need to be merged to fix this properly is the > -F deprecation patch. > > How important is this for RHEL6.6? I'd say it's low priority, it only fails generic/306 case. Maybe we can mark this bug as VERIFIED and file a new bug and decide whether we fix the -F deprecation issue there? Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-1564.html |