Index: uspace/lib/minix/minix.h
===================================================================
--- uspace/lib/minix/minix.h	(revision 5a58ae29904f03f93a69c9830e1f9cd515ff5d56)
+++ uspace/lib/minix/minix.h	(revision 7d043242a562d0a28791d5a2917977ab70c6ed27)
@@ -38,5 +38,7 @@
 #define MFS_BLOCKSIZE		1024
 #define S_ISDIR(m)		(((m) & S_IFMT) == S_IFDIR)
-#define S_IFDIR			0040000
+#define S_ISREG(m)		(((m) & S_IFMT) == S_IFREG)
+#define S_IFDIR			0040000		/*Directory*/
+#define S_IFREG			0100000		/*Regular file*/
 #define S_IFMT			00170000
 
Index: uspace/srv/fs/minixfs/mfs.h
===================================================================
--- uspace/srv/fs/minixfs/mfs.h	(revision 5a58ae29904f03f93a69c9830e1f9cd515ff5d56)
+++ uspace/srv/fs/minixfs/mfs.h	(revision 7d043242a562d0a28791d5a2917977ab70c6ed27)
@@ -101,4 +101,5 @@
 extern void mfs_mount(ipc_callid_t rid, ipc_call_t *request);
 extern bool mfs_is_directory(fs_node_t *fsnode);
+extern bool mfs_is_file(fs_node_t *fsnode);
 extern devmap_handle_t mfs_device_get(fs_node_t *fsnode);
 extern int  mfs_get_instance(devmap_handle_t handle,
Index: uspace/srv/fs/minixfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_ops.c	(revision 5a58ae29904f03f93a69c9830e1f9cd515ff5d56)
+++ uspace/srv/fs/minixfs/mfs_ops.c	(revision 7d043242a562d0a28791d5a2917977ab70c6ed27)
@@ -46,5 +46,6 @@
 libfs_ops_t mfs_libfs_ops = {
 	.device_get = mfs_device_get,
-	.is_directory = mfs_is_directory
+	.is_directory = mfs_is_directory,
+	.is_file = mfs_is_file
 };
 
@@ -214,4 +215,15 @@
 }
 
+bool mfs_is_file(fs_node_t *fsnode)
+{
+	struct mfs_node *node = fsnode->data;
+	struct mfs_sb_info *sbi = node->instance->sbi;
+
+	if (sbi->fs_version == MFS_VERSION_V1)
+		return S_ISREG(node->ino->i_mode);
+	else
+		return S_ISREG(node->ino2->i_mode);
+}
+
 /*
  * Find a filesystem instance given the devmap handle
