Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2a81544
)
Fix for truncate/write inversion.
author
adilger
<adilger>
Fri, 15 Aug 2003 20:28:09 +0000
(20:28 +0000)
committer
adilger
<adilger>
Fri, 15 Aug 2003 20:28:09 +0000
(20:28 +0000)
b=1639
r=phil
lustre/llite/llite_lib.c
patch
|
blob
|
history
diff --git
a/lustre/llite/llite_lib.c
b/lustre/llite/llite_lib.c
index
e64c5da
..
791dfbc
100644
(file)
--- a/
lustre/llite/llite_lib.c
+++ b/
lustre/llite/llite_lib.c
@@
-670,8
+670,12
@@
int ll_setattr_raw(struct inode *inode, struct iattr *attr)
* nodes through dirtying and writeback of final cached
* pages. This last one is especially bad for racing
* o_append users on other nodes. */
+ /* bug 1639: avoid write/truncate i_sem/DLM deadlock */
+ LASSERT(atomic_read(&inode->i_sem.count) == 0);
+ up(&inode->i_sem);
rc = ll_extent_lock_no_validate(NULL, inode, lsm, LCK_PW,
&extent, &lockh);
+ down(&inode->i_sem);
if (rc != ELDLM_OK) {
if (rc > 0)
RETURN(-ENOLCK);