diff --git a/src/fs/btrfs.cpp b/src/fs/btrfs.cpp
index 44d9b06..f911608 100644
--- a/src/fs/btrfs.cpp
+++ b/src/fs/btrfs.cpp
@@ -53,7 +53,7 @@ namespace FS
{
m_Create = findExternal("mkfs.btrfs") ? cmdSupportFileSystem : cmdSupportNone;
m_Check = findExternal("btrfsck", QStringList(), 1) ? cmdSupportFileSystem : cmdSupportNone;
- m_Grow = findExternal("btrfs") ? cmdSupportFileSystem : cmdSupportNone;
+ m_Grow = (m_Check != cmdSupportNone && findExternal("btrfs")) ? cmdSupportFileSystem : cmdSupportNone;
m_GetUsed = findExternal("btrfs-debug-tree") ? cmdSupportFileSystem : cmdSupportNone;
m_Shrink = (m_Grow != cmdSupportNone && m_GetUsed != cmdSupportNone) ? cmdSupportFileSystem : cmdSupportNone;
@@ -147,13 +147,12 @@ namespace FS
if (resizeCmd.run(-1) && resizeCmd.exitCode() == 0)
rval = true;
else
- report.line() << i18nc("@info/plain", "Resizing Btrfs file system on partition %1 failed: btrfs filesystem resize failed.", deviceNode);
+ report.line() << i18nc("@info/plain", "Resizing Btrfs file system on partition %1 failed: btrfs file system resize failed.", deviceNode);
ExternalCommand unmountCmd(report, "umount", QStringList() << tempDir.name());
if (!unmountCmd.run(-1) && unmountCmd.exitCode() == 0 )
report.line() << i18nc("@info/plain", "Warning: Resizing Btrfs file system on partition %1: Unmount failed.", deviceNode);
-
}
else
report.line() << i18nc("@info/plain", "Resizing Btrfs file system on partition %1 failed: Initial mount failed.", deviceNode);
diff --git a/src/fs/ext2.cpp b/src/fs/ext2.cpp
index 06999d2..73a6242 100644
--- a/src/fs/ext2.cpp
+++ b/src/fs/ext2.cpp
@@ -54,7 +54,7 @@ namespace FS
m_Check = findExternal("e2fsck", QStringList() << "-V") ? cmdSupportFileSystem : cmdSupportNone;
m_UpdateUUID = findExternal("tune2fs") ? cmdSupportFileSystem : cmdSupportNone;
m_Grow = (m_Check != cmdSupportNone && findExternal("resize2fs")) ? cmdSupportFileSystem : cmdSupportNone;
- m_Shrink = m_GetUsed != cmdSupportNone ? cmdSupportFileSystem : cmdSupportNone;
+ m_Shrink = (m_Grow != cmdSupportNone && m_GetUsed) != cmdSupportNone ? cmdSupportFileSystem : cmdSupportNone;
m_Copy = (m_Check != cmdSupportNone) ? cmdSupportCore : cmdSupportNone;
m_Move = (m_Check != cmdSupportNone) ? cmdSupportCore : cmdSupportNone;
m_Backup = cmdSupportCore;
diff --git a/src/fs/nilfs2.cpp b/src/fs/nilfs2.cpp
index 7654e02..2693e95 100644
--- a/src/fs/nilfs2.cpp
+++ b/src/fs/nilfs2.cpp
@@ -58,7 +58,7 @@ namespace FS
m_GetLabel = cmdSupportCore;
m_SetLabel = findExternal("nilfs-tune") ? cmdSupportFileSystem : cmdSupportNone;
m_UpdateUUID = findExternal("nilfs-tune") ? cmdSupportFileSystem : cmdSupportNone;
-
+
m_Grow = (m_Check != cmdSupportNone && findExternal("nilfs-resize")) ? cmdSupportFileSystem : cmdSupportNone;
m_GetUsed = findExternal("nilfs-tune") ? cmdSupportFileSystem : cmdSupportNone;
m_Shrink = (m_Grow != cmdSupportNone && m_GetUsed != cmdSupportNone) ? cmdSupportFileSystem : cmdSupportNone;
diff --git a/src/fs/nilfs2.h b/src/fs/nilfs2.h
index edaae51..ed98e8a 100644
--- a/src/fs/nilfs2.h
+++ b/src/fs/nilfs2.h
@@ -28,6 +28,7 @@
#include
class Report;
+
class QString;
namespace FS