diff options
author | David Woodhouse <dwmw2@infradead.org> | 2006-05-20 17:27:32 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-05-20 17:27:32 +0100 |
commit | 0cfc7da3ff4b39a3aac261ab3f6b1329e2485653 (patch) | |
tree | 447073fe757b42e6da63b96a26cbbc6b4c705946 /fs/jffs2/README.Locking | |
parent | 1417fc44ee923418df3adadeb4846c891bba1ba5 (diff) | |
parent | 20a92fc74c5c91c7bc5693d51acc2b99aceb0465 (diff) | |
download | op-kernel-dev-0cfc7da3ff4b39a3aac261ab3f6b1329e2485653.zip op-kernel-dev-0cfc7da3ff4b39a3aac261ab3f6b1329e2485653.tar.gz |
Merge git://git.infradead.org/jffs2-xattr-2.6
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/README.Locking')
-rw-r--r-- | fs/jffs2/README.Locking | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/jffs2/README.Locking b/fs/jffs2/README.Locking index b794343..c8f0bd6 100644 --- a/fs/jffs2/README.Locking +++ b/fs/jffs2/README.Locking @@ -150,3 +150,24 @@ the buffer. Ordering constraints: Lock wbuf_sem last, after the alloc_sem or and f->sem. + + + c->xattr_sem + ------------ + +This read/write semaphore protects against concurrent access to the +xattr related objects which include stuff in superblock and ic->xref. +In read-only path, write-semaphore is too much exclusion. It's enough +by read-semaphore. But you must hold write-semaphore when updating, +creating or deleting any xattr related object. + +Once xattr_sem released, there would be no assurance for the existence +of those objects. Thus, a series of processes is often required to retry, +when updating such a object is necessary under holding read semaphore. +For example, do_jffs2_getxattr() holds read-semaphore to scan xref and +xdatum at first. But it retries this process with holding write-semaphore +after release read-semaphore, if it's necessary to load name/value pair +from medium. + +Ordering constraints: + Lock xattr_sem last, after the alloc_sem. |