fix
authorMiklos Szeredi <miklos@szeredi.hu>
Fri, 14 Oct 2005 21:24:32 +0000 (21:24 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Fri, 14 Oct 2005 21:24:32 +0000 (21:24 +0000)
ChangeLog
lib/Makefile.am
lib/fuse.c

index f50db1d83ac99f9b4f50f1d5f8855d6d71e963c7..2f34cd97d7f863302ab3e03f700a007f312e51b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-14  Miklos Szeredi <miklos@szeredi.hu>
+
+       * libfuse: add debug for write result and warnings for too large
+       read/write result.
+
 2005-10-11  Miklos Szeredi <miklos@szeredi.hu>
 
        * Spelling fixes, thanks to Ioannis Barkas
index 49a1b816b30e7dc898c97a6a1253163eca58f85b..2d81fb00a894ed1235174fd37c1d4f08daeee2c9 100644 (file)
@@ -14,7 +14,7 @@ libfuse_la_SOURCES =          \
        helper.c                \
        mount.c
 
-libfuse_la_LDFLAGS = -lpthread -version-number 2:4:0 \
+libfuse_la_LDFLAGS = -lpthread -version-number 2:4:1 \
        -Wl,--version-script,fuse_versionscript
 
 EXTRA_DIST = fuse_versionscript
index 8555c45345375cb4e019d90f46251f6eebb9fe2f..e44b9f2859926af2bd7240367660c26c0988c3c0 100644 (file)
@@ -1056,6 +1056,8 @@ static void fuse_read(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
             printf("   READ[%lu] %u bytes\n", fi->fh, res);
             fflush(stdout);
         }
+        if ((size_t) res > size)
+            fprintf(stderr, "fuse: read too many bytes");
         fuse_reply_buf(req, buf, res);
     } else
         reply_err(req, res);
@@ -1087,9 +1089,16 @@ static void fuse_write(fuse_req_t req, fuse_ino_t ino, const char *buf,
     }
     pthread_rwlock_unlock(&f->tree_lock);
 
-    if (res >= 0)
+    if (res >= 0) {
+        if (f->flags & FUSE_DEBUG) {
+            printf("   WRITE%s[%lu] %u bytes\n",
+                   fi->writepage ? "PAGE" : "", fi->fh, res);
+            fflush(stdout);
+        }
+        if ((size_t) res > size)
+            fprintf(stderr, "fuse: wrote too many bytes");
         fuse_reply_write(req, res);
-    else
+    else
         reply_err(req, res);
 }