From 11a80dd330ed8341fe1a37abaea97eaa550436f9 Mon Sep 17 00:00:00 2001 From: adilger Date: Mon, 24 Jun 2002 17:08:03 +0000 Subject: [PATCH] One more ll_truncate fix on branch. --- lustre/llite/rw.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index 10dbac0..71726c2 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -256,15 +256,16 @@ void ll_truncate(struct inode *inode) int err; ENTRY; - oa = ll_oa_from_inode(inode, OBD_MD_FLNOTOBD); + oa = ll_oa_from_inode(inode, OBD_MD_FLID | OBD_MD_FLSIZE); if (!oa) { CERROR("no memory to allocate obdo!\n"); return; } - CDEBUG(D_INFO, "calling punch for %ld (%Lu bytes at 0)\n", + CDEBUG(D_INFO, "calling punch for %ld (all bytes after %Lu)\n", (long)oa->o_id, (unsigned long long)oa->o_size); - err = obd_punch(ll_i2obdconn(inode), oa, oa->o_size, 0); + /* truncate == punch from i_size onwards */ + err = obd_punch(ll_i2obdconn(inode), oa, -1 - oa->o_size, oa->o_size); obdo_free(oa); if (err) -- 1.8.3.1