Re: xfs_repair: add '-F' option to ignore writable mount checking
From: Carlos Maiolino <hidden>
Date: 2018-02-27 10:57:25
On Tue, Feb 27, 2018 at 06:44:35PM +0800, Yang Joseph wrote:
xfs_repair should not touch non-xfs mountpoints in platform_check_mount(). If non-xfs mountpoints can be filtered out, the dead fuse mountpoint can never block our xfs_repair. The following patch can fix my problem and not add dangerous option to xfs_repair. thx, Yang Honggang
Should be properly indented, but it looks fair to me. There is no reason xfsprogs should act upon non-xfs mount points afaik.
quoted hunk ↗ jump to hunk
-------------------------new patch----------------------diff --git a/libxfs/linux.c b/libxfs/linux.c index 0bace3e..6ad24ce 100644 --- a/libxfs/linux.c +++ b/libxfs/linux.c@@ -44,6 +44,7 @@ static int max_block_alignment; #endif #define PROC_MOUNTED "/proc/mounts" +#define MNTTYPE_XFS "xfs" /* * Check if the filesystem is mounted. Be verbose if asked, and@@ -78,6 +79,9 @@ platform_check_mount(char *name, char *block, struct stat*s, int flags) return 1; } while ((mnt = getmntent(f)) != NULL) { + /* filter out non xfs mountpoint */ + if (strncmp(mnt->mnt_type, MNTTYPE_XFS, strlen(mnt->mnt_type))) + continue; if (stat(mnt->mnt_dir, &mst) < 0) continue; if (mst.st_dev != s->st_rdev) -------------------------new patch end----------------- On 02/25/2018 06:04 AM, Dave Chinner wrote:quoted
On Sat, Feb 24, 2018 at 11:56:44AM -0600, Eric Sandeen wrote:quoted
On 2/24/18 5:23 AM, Yang Joseph wrote:quoted
hello, Before the repair process, xfs_repair will check if user specified device already has a writable mountpoint. And it will stat all the mountpoints of the system. If there is a dead mountpoint, this checking will be blocked and xfs_repair will enter 'D' state.So why is the mount point dead? That kinda means that the filesystem is still mounted, but something has hung somewhere and the filesystem may still have active references to the underlying device and be doing stuff that is modifying the filesystem.... And if the device is still busy, then you aren't going to be able to mount the repaired device, anyway, because the block device is still busy...quoted
That sounds like a bug worth fixing, but I am much less excited about adding options which could do serious damage to a filesystem.TO me it sounds like something that should be fixed by a reboot, not by adding dangerous options to xfs_repair... Cheers, Dave.-- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
-- Carlos