From: bwzhou Date: Thu, 29 Nov 2007 05:39:20 +0000 (+0000) Subject: Branch b1_6 X-Git-Tag: v1_8_0_110~944 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=3b36ad93151ac5e60f14069e81fa78e4b26d3eee;p=fs%2Flustre-release.git Branch b1_6 b=14326 r=johann,bwzhou Use old size assignment to avoid deadlock caused by ll_inode_size_lock calls down semaphore under spinlock held. --- diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index e36bf75..fdaf011 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -1739,9 +1739,13 @@ void ll_update_inode(struct inode *inode, struct lustre_md *md) inode->i_rdev = old_decode_dev(body->rdev); #endif if (body->valid & OBD_MD_FLSIZE) { +#if 0 /* Can't block ll_test_inode->ll_update_inode, b=14326*/ ll_inode_size_lock(inode, 0); i_size_write(inode, body->size); ll_inode_size_unlock(inode, 0); +#else + inode->i_size = body->size; +#endif } if (body->valid & OBD_MD_FLBLOCKS) inode->i_blocks = body->blocks;