Index: uspace/srv/fs/mfs/mfs.h
===================================================================
--- uspace/srv/fs/mfs/mfs.h	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs.h	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -159,5 +159,5 @@
 
 extern int
-mfs_put_inode_core(struct mfs_node *mnode);
+mfs_put_inode(struct mfs_node *mnode);
 
 extern int
Index: uspace/srv/fs/mfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/mfs/mfs_balloc.c	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs_balloc.c	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -122,7 +122,5 @@
 	block_t *b;
 
-	assert(inst != NULL);
 	sbi = inst->sbi;
-	assert(sbi != NULL);
 
 	if (bid == BMAP_ZONE) {
@@ -192,7 +190,5 @@
 	int r, freebit;
 
-	assert(inst != NULL);
 	sbi = inst->sbi;
-	assert(sbi != NULL);
 
 	if (bid == BMAP_ZONE) {
Index: uspace/srv/fs/mfs/mfs_dentry.c
===================================================================
--- uspace/srv/fs/mfs/mfs_dentry.c	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs_dentry.c	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -76,4 +76,5 @@
 		d_info->d_inum = conv32(sbi->native, d3->d_inum);
 		memcpy(d_info->d_name, d3->d_name, MFS3_MAX_NAME_LEN);
+		d_info->d_name[MFS3_MAX_NAME_LEN] = 0;
 	} else {
 		const int namelen = longnames ? MFS_L_MAX_NAME_LEN :
@@ -86,4 +87,5 @@
 		d_info->d_inum = conv16(sbi->native, d->d_inum);
 		memcpy(d_info->d_name, d->d_name, namelen);
+		d_info->d_name[namelen] = 0;
 	}
 
@@ -249,5 +251,6 @@
 	d_info.d_inum = d_inum;
 	memcpy(d_info.d_name, d_name, name_len);
-	d_info.d_name[name_len] = 0;
+	if (name_len < sbi->max_name_len)
+		d_info.d_name[name_len] = 0;
 
 	r = mfs_write_dentry(&d_info);
Index: uspace/srv/fs/mfs/mfs_inode.c
===================================================================
--- uspace/srv/fs/mfs/mfs_inode.c	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs_inode.c	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -48,5 +48,13 @@
 		struct mfs_ino_info **ino_ptr, uint32_t inum);
 
-
+/**Read a MINIX inode from disk
+ *
+ * @param inst		Pointer to the filesystem instance.
+ * @param ino_i		Pointer to the generic MINIX inode
+ * 			where the inode content will be stored.
+ * @param index		index of the inode to read.
+ *
+ * @return		EOK on success or a negative error code.
+ */
 int
 mfs_get_inode(struct mfs_instance *inst, struct mfs_ino_info **ino_i,
@@ -77,5 +85,4 @@
 
 	sbi = instance->sbi;
-	assert(sbi);
 
 	/*inode 0 does not exist*/
@@ -142,5 +149,4 @@
 
 	sbi = instance->sbi;
-	assert(sbi);
 
 	/*inode 0 does not exist*/
@@ -185,11 +191,14 @@
 }
 
+/**Write a MINIX inode on disk (if marked as dirty)
+ *
+ * @param mnode		Pointer to the generic MINIX inode in memory.
+ *
+ * @return		EOK on success or a negative error code.
+ */
 int
-mfs_put_inode_core(struct mfs_node *mnode)
+mfs_put_inode(struct mfs_node *mnode)
 {
 	int rc = EOK;
-
-	assert(mnode);
-	assert(mnode->ino_i);
 
 	if (!mnode->ino_i->dirty)
@@ -197,7 +206,5 @@
 
 	struct mfs_instance *inst = mnode->instance;
-	assert(inst);
 	struct mfs_sb_info *sbi = inst->sbi;
-	assert(sbi);
 
 	if (sbi->fs_version == MFS_VERSION_V1)
@@ -299,4 +306,11 @@
 }
 
+/**Reduce the inode size of a given number of bytes
+ *
+ * @param mnode		Pointer to the generic MINIX inode in memory.
+ * @param size_shrink	Number of bytes that will be subtracted to the inode.
+ *
+ * @return		EOK on success or a negative error code.
+ */
 int
 mfs_inode_shrink(struct mfs_node *mnode, size_t size_shrink)
Index: uspace/srv/fs/mfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/mfs/mfs_ops.c	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs_ops.c	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -468,10 +468,5 @@
 static aoff64_t mfs_size_get(fs_node_t *node)
 {
-	assert(node);
-
 	const struct mfs_node *mnode = node->data;
-	assert(mnode);
-	assert(mnode->ino_i);
-
 	return mnode->ino_i->i_size;
 }
@@ -513,5 +508,5 @@
 		assert(mnode->instance->open_nodes_cnt > 0);
 		mnode->instance->open_nodes_cnt--;
-		rc = mfs_put_inode_core(mnode);
+		rc = mfs_put_inode(mnode);
 		free(mnode->ino_i);
 		free(mnode);
@@ -535,6 +530,4 @@
 {
 	struct mfs_node *mnode = fsnode->data;
-
-	assert(mnode->ino_i);
 	return mnode->ino_i->index;
 }
Index: uspace/srv/fs/mfs/mfs_rw.c
===================================================================
--- uspace/srv/fs/mfs/mfs_rw.c	(revision cccc091d338fed662eee03c62552577ab34b5e87)
+++ uspace/srv/fs/mfs/mfs_rw.c	(revision 47fecbb0a9198c8184b7b6a37a96d9e4fe7bf351)
@@ -53,5 +53,10 @@
  *bytes, this function returns the on-disk block
  *relative to that position.
- *Returns zero if the block does not exist.
+ *
+ * @param b	Pointer to a 32bit number where the block number will be stored
+ * @param mnode	Pointer to a generic MINIX inode in memory.
+ * @param pos	Position in file.
+ *
+ * @return	EOK on success or a negative error code.
  */
 int
@@ -227,5 +232,11 @@
 }
 
-/*Free unused indirect zones*/
+/**Free unused indirect zones from a MINIX inode according to it's new size.
+ *
+ * @param mnode		Pointer to a generic MINIX inode in memory.
+ * @param new_size	The new size of the inode.
+ *
+ * @return		EOK on success or a negative error code.
+ */
 int
 mfs_prune_ind_zones(struct mfs_node *mnode, size_t new_size)
@@ -239,4 +250,6 @@
 	mfs_version_t fs_version = sbi->fs_version;
 	
+	assert(new_size <= ino_i->i_size);
+
 	if (fs_version == MFS_VERSION_V1) {
 		nr_direct = V1_NR_DIRECT_ZONES;
