X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=fs%2Fjffs2%2FREADME.Locking;fp=fs%2Fjffs2%2FREADME.Locking;h=b7943439b6ec995cbe795603c91c63566526e211;hp=c8f0bd64e53ea38e788abb87c2743aa15bcef79e;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c diff --git a/fs/jffs2/README.Locking b/fs/jffs2/README.Locking index c8f0bd64e..b7943439b 100644 --- a/fs/jffs2/README.Locking +++ b/fs/jffs2/README.Locking @@ -150,24 +150,3 @@ 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.