lkml.org 
[lkml]   [2007]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[Patch 18/18] fs/logfs/Locking
    --- /dev/null	2007-03-13 19:15:28.862769062 +0100
    +++ linux-2.6.21logfs/fs/logfs/Locking 2007-06-03 19:18:57.000000000 +0200
    @@ -0,0 +1,45 @@
    +Locks:
    +
    +s_victim_mutex
    +Protects victim inode for create, unlink, mkdir, rmdir, mknod, link,
    +symlink and one variant of rename. Only one victim inode may exist at
    +a time. In case of unclean unmount, victim inode has to be deleted
    +before next read-writable mount.
    +
    +s_rename_mutex
    +Protects victim dd for rename. Only one victim dd may exist at a
    +time. In case of unclean unmount, victim dd has to be deleted before
    +next read-writable mount.
    +
    +s_write_inode_mutex
    +Taken when writing an inode. Deleted inodes can be locked, preventing
    +further iget operations during writeout. Logfs may need to iget the
    +inode for garbage collection, so the inode in question needs to be
    +stored in the superblock and used directly without calling iget.
    +
    +s_log_sem
    +Used for allocating space in journal.
    +
    +s_r_sem
    +Protects the memory required for reads from the filesystem.
    +
    +s_w_sem
    +Protects the memory required for writes to the filesystem.
    +
    +s_ino_lock
    +Protects s_last_ino.
    +
    +
    +Lock order:
    +s_rename_mutex --> s_victim_mutex
    +s_rename_mutex --> s_write_inode_mutex
    +s_rename_mutex --> s_w_sem
    +
    +s_victim_mutex --> s_write_inode_mutex
    +s_victim_mutex --> s_w_sem
    +s_victim_mutex --> s_ino_lock
    +
    +s_write_inode_mutex --> s_w_sem
    +
    +s_w_sem --> s_log_sem
    +s_w_sem --> s_r_sem
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-06-03 20:59    [W:0.024 / U:0.572 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site