mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
introduce I_SYNC
I_LOCK was used for several unrelated purposes, which caused deadlock situations in certain filesystems as a side effect. One of the purposes now uses the new I_SYNC bit. Also document the various bits and change their order from historical to logical. [[email protected]: make fs/inode.c:wake_up_inode() static] Signed-off-by: Joern Engel <[email protected]> Cc: Dave Kleikamp <[email protected]> Cc: David Chinner <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Signed-off-by: Adrian Bunk <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
2e6883bdf4
commit
1c0eeaf569
8 changed files with 116 additions and 42 deletions
|
|
@ -1289,7 +1289,14 @@ int txCommit(tid_t tid, /* transaction identifier */
|
|||
* commit the transaction synchronously, so the last iput
|
||||
* will be done by the calling thread (or later)
|
||||
*/
|
||||
if (tblk->u.ip->i_state & I_LOCK)
|
||||
/*
|
||||
* I believe this code is no longer needed. Splitting I_LOCK
|
||||
* into two bits, I_LOCK and I_SYNC should prevent this
|
||||
* deadlock as well. But since I don't have a JFS testload
|
||||
* to verify this, only a trivial s/I_LOCK/I_SYNC/ was done.
|
||||
* Joern
|
||||
*/
|
||||
if (tblk->u.ip->i_state & I_SYNC)
|
||||
tblk->xflag &= ~COMMIT_LAZY;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue