diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c
index 25769e9548ae26281d8f65709621653da9c0ffc4..7b42ffdd647749128ec547d12dea302b33bf6a7b 100644
--- a/lustre/llite/rw.c
+++ b/lustre/llite/rw.c
@@ -174,6 +174,7 @@ void ll_truncate(struct inode *inode)
         
         rc = obd_punch(ll_i2dtexp(inode), oa, lsm, inode->i_size,
                        OBD_OBJECT_EOF, NULL, capa);
+        capa_put(ocapa);
         if (rc)
                 CERROR("obd_truncate fails (%d) ino %lu\n", rc, inode->i_ino);
         else