Commit Diff


commit - 5565d021835b6c976da86e95f176b4cce5ba277c
commit + 68a7ef689646791cb998ff37308ac73f8ac9c2a5
blob - 311ce7967d863fbd1fa4cb4ef25cdbb05282e2ce
blob + 8b5ba2635cc39658afdf681526dc384c966be10c
--- kamid/client.c
+++ kamid/client.c
@@ -1364,7 +1364,13 @@ serialize_stat(const char *fname, struct stat *sb, str
 
 	np_write32(evb, sb->st_atim.tv_sec);	/*	atime[4]	*/
 	np_write32(evb, sb->st_mtim.tv_sec);	/*	mtime[4]	*/
-	np_write64(evb, sb->st_size);		/*	length[8]	*/
+
+	/* special case: directories have size 0 */
+	if (qid.type & QTDIR)
+		np_write64(evb, 0);
+	else
+		np_write64(evb, sb->st_size);	/*	length[8]	*/
+
 	np_string(evb, namlen, fname);		/*	name[s]		*/
 	np_string(evb, uidlen, uid);		/*	uid[s]		*/
 	np_string(evb, gidlen, gid);		/*	gid[s]		*/