diff options
Diffstat (limited to 'xfs_freeze.patch')
-rw-r--r-- | xfs_freeze.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/xfs_freeze.patch b/xfs_freeze.patch new file mode 100644 index 000000000000..694456006bfd --- /dev/null +++ b/xfs_freeze.patch @@ -0,0 +1,22 @@ +Index: b/util/grub-install.in +=================================================================== +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -470,6 +470,17 @@ + test -n "$mkimg" && img_file=`$mkimg` + test -n "$mklog" && log_file=`$mklog` + ++# GRUB will try to verify that stage2 is accessible using its own ++# filesystem drivers. Make sure it's committed to disk. ++sync ++ ++# On XFS, sync() is not enough. ++if [ x"`grub-probe --device-map=${device_map} -t fs ${grubdir}`" = "xxfs" ] ; then ++ xfs_freeze -f ${grubdir} && xfs_freeze -u ${grubdir} ++ # We don't have set -e. If xfs_freeze failed, it's worth trying anyway, ++ # maybe we're lucky. ++fi ++ + for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do + count=5 + tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` |