Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 27813
b: refs/heads/master
c: 8b0b339
h: refs/heads/master
i:
  27811: 9fc64ad
v: v3
  • Loading branch information
KaiGai Kohei committed May 13, 2006
1 parent 12c84df commit 00cca15
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: de1f72fab35d2b6215017690c6dc27b8f4aa14bc
refs/heads/master: 8b0b339d46ca0105a9936e3caa3bac80b72de7a3
21 changes: 21 additions & 0 deletions trunk/fs/jffs2/README.Locking
Original file line number Diff line number Diff line change
Expand Up @@ -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.

0 comments on commit 00cca15

Please sign in to comment.