lkml.org 
[lkml]   [2005]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 13/19] MUTEX: Filesystem changes
    The attached patch modifies the filesystem files to use the new mutex
    functions.

    Signed-Off-By: David Howells <dhowells@redhat.com>
    ---
    warthog>diffstat -p1 mutex-fs-2615rc5.diff
    fs/9p/trans_fd.c | 4 ++--
    fs/9p/trans_sock.c | 8 ++++----
    fs/9p/transport.h | 4 ++--
    fs/9p/v9fs.h | 2 +-
    fs/affs/affs.h | 6 +++---
    fs/autofs4/autofs_i.h | 2 +-
    fs/block_dev.c | 4 ++--
    fs/cifs/cifsglob.h | 8 ++++----
    fs/cramfs/inode.c | 2 +-
    fs/dquot.c | 2 +-
    fs/eventpoll.c | 4 ++--
    fs/fuse/dev.c | 10 +++++-----
    fs/fuse/fuse_i.h | 2 +-
    fs/hfs/btree.h | 2 +-
    fs/hfs/hfs_fs.h | 4 ++--
    fs/hfsplus/hfsplus_fs.h | 4 ++--
    fs/hpfs/hpfs_fn.h | 6 +++---
    fs/inode.c | 4 ++--
    fs/inotify.c | 4 ++--
    fs/isofs/compress.c | 2 +-
    fs/jffs/inode-v23.c | 2 +-
    fs/jffs/intrep.c | 2 +-
    fs/jffs/jffs_fm.h | 2 +-
    fs/jfs/jfs_dmap.h | 2 +-
    fs/jfs/jfs_imap.h | 4 ++--
    fs/jfs/jfs_incore.h | 2 +-
    fs/jfs/jfs_logmgr.h | 2 +-
    fs/libfs.c | 2 +-
    fs/lockd/svc.c | 7 ++++---
    fs/locks.c | 2 +-
    fs/nfs/idmap.c | 4 ++--
    fs/ntfs/inode.h | 6 +++---
    fs/ntfs/ntfs.h | 2 +-
    fs/partitions/devfs.c | 4 ++--
    fs/reiserfs/journal.c | 8 ++++----
    fs/reiserfs/xattr.c | 2 +-
    fs/seq_file.c | 2 +-
    fs/super.c | 8 ++++----
    fs/sysfs/file.c | 4 ++--
    fs/xfs/linux-2.6/mutex.h | 8 ++++----
    fs/xfs/linux-2.6/sema.h | 2 +-
    fs/xfs/linux-2.6/xfs_buf.h | 4 ++--
    42 files changed, 83 insertions(+), 82 deletions(-)

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/9p/trans_fd.c linux-2.6.15-rc5-mutex/fs/9p/trans_fd.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/9p/trans_fd.c 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/9p/trans_fd.c 2005-12-12 19:58:04.000000000 +0000
    @@ -106,8 +106,8 @@ v9fs_fd_init(struct v9fs_session_info *v
    return -ENOPROTOOPT;
    }

    - sema_init(&trans->writelock, 1);
    - sema_init(&trans->readlock, 1);
    + init_MUTEX(&trans->writelock);
    + init_MUTEX(&trans->readlock);

    ts = kmalloc(sizeof(struct v9fs_trans_fd), GFP_KERNEL);

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/9p/transport.h linux-2.6.15-rc5-mutex/fs/9p/transport.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/9p/transport.h 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/9p/transport.h 2005-12-12 19:57:43.000000000 +0000
    @@ -31,8 +31,8 @@ enum v9fs_transport_status {

    struct v9fs_transport {
    enum v9fs_transport_status status;
    - struct semaphore writelock;
    - struct semaphore readlock;
    + struct mutex writelock;
    + struct mutex readlock;
    void *priv;

    int (*init) (struct v9fs_session_info *, const char *, char *);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/9p/trans_sock.c linux-2.6.15-rc5-mutex/fs/9p/trans_sock.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/9p/trans_sock.c 2005-12-08 16:23:48.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/9p/trans_sock.c 2005-12-12 19:58:29.000000000 +0000
    @@ -154,8 +154,8 @@ v9fs_tcp_init(struct v9fs_session_info *
    struct v9fs_trans_sock *ts = NULL;
    struct v9fs_transport *trans = v9ses->transport;

    - sema_init(&trans->writelock, 1);
    - sema_init(&trans->readlock, 1);
    + init_MUTEX(&trans->writelock);
    + init_MUTEX(&trans->readlock);

    ts = kmalloc(sizeof(struct v9fs_trans_sock), GFP_KERNEL);

    @@ -225,8 +225,8 @@ v9fs_unix_init(struct v9fs_session_info
    trans->priv = ts;
    ts->s = NULL;

    - sema_init(&trans->writelock, 1);
    - sema_init(&trans->readlock, 1);
    + init_MUTEX(&trans->writelock);
    + init_MUTEX(&trans->readlock);

    sun_server.sun_family = PF_UNIX;
    strcpy(sun_server.sun_path, dev_name);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/9p/v9fs.h linux-2.6.15-rc5-mutex/fs/9p/v9fs.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/9p/v9fs.h 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/9p/v9fs.h 2005-12-12 20:52:22.000000000 +0000
    @@ -28,7 +28,7 @@
    */

    struct v9fs_idpool {
    - struct semaphore lock;
    + struct mutex lock;
    struct idr pool;
    };

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/affs/affs.h linux-2.6.15-rc5-mutex/fs/affs/affs.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/affs/affs.h 2005-03-02 12:08:34.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/affs/affs.h 2005-12-12 20:49:44.000000000 +0000
    @@ -50,8 +50,8 @@ struct affs_ext_key {
    */
    struct affs_inode_info {
    u32 i_opencnt;
    - struct semaphore i_link_lock; /* Protects internal inode access. */
    - struct semaphore i_ext_lock; /* Protects internal inode access. */
    + struct mutex i_link_lock; /* Protects internal inode access. */
    + struct mutex i_ext_lock; /* Protects internal inode access. */
    #define i_hash_lock i_ext_lock
    u32 i_blkcnt; /* block count */
    u32 i_extcnt; /* extended block count */
    @@ -99,7 +99,7 @@ struct affs_sb_info {
    gid_t s_gid; /* gid to override */
    umode_t s_mode; /* mode to override */
    struct buffer_head *s_root_bh; /* Cached root block. */
    - struct semaphore s_bmlock; /* Protects bitmap access. */
    + struct mutex s_bmlock; /* Protects bitmap access. */
    struct affs_bm_info *s_bitmap; /* Bitmap infos. */
    u32 s_bmap_count; /* # of bitmap blocks. */
    u32 s_bmap_bits; /* # of bits in one bitmap blocks */
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/autofs4/autofs_i.h linux-2.6.15-rc5-mutex/fs/autofs4/autofs_i.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/autofs4/autofs_i.h 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/autofs4/autofs_i.h 2005-12-12 17:33:33.000000000 +0000
    @@ -102,7 +102,7 @@ struct autofs_sb_info {
    int reghost_enabled;
    int needs_reghost;
    struct super_block *sb;
    - struct semaphore wq_sem;
    + struct mutex wq_sem;
    spinlock_t fs_lock;
    struct autofs_wait_queue *queues; /* Wait queue pointer */
    };
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/block_dev.c linux-2.6.15-rc5-mutex/fs/block_dev.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/block_dev.c 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/block_dev.c 2005-12-12 17:32:31.000000000 +0000
    @@ -265,8 +265,8 @@ static void init_once(void * foo, kmem_c
    SLAB_CTOR_CONSTRUCTOR)
    {
    memset(bdev, 0, sizeof(*bdev));
    - sema_init(&bdev->bd_sem, 1);
    - sema_init(&bdev->bd_mount_sem, 1);
    + init_MUTEX(&bdev->bd_sem);
    + init_MUTEX(&bdev->bd_mount_sem);
    INIT_LIST_HEAD(&bdev->bd_inodes);
    INIT_LIST_HEAD(&bdev->bd_list);
    inode_init_once(&ei->vfs_inode);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/cifs/cifsglob.h linux-2.6.15-rc5-mutex/fs/cifs/cifsglob.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/cifs/cifsglob.h 2005-12-08 16:23:48.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/cifs/cifsglob.h 2005-12-12 20:48:45.000000000 +0000
    @@ -135,7 +135,7 @@ struct TCP_Server_Info {
    atomic_t num_waiters; /* blocked waiting to get in sendrecv */
    #endif
    enum statusEnum tcpStatus; /* what we think the status is */
    - struct semaphore tcpSem;
    + struct mutex tcpSem;
    struct task_struct *tsk;
    char server_GUID[16];
    char secMode;
    @@ -178,7 +178,7 @@ struct cifsUidInfo {
    */
    struct cifsSesInfo {
    struct list_head cifsSessionList;
    - struct semaphore sesSem;
    + struct mutex sesSem;
    struct cifsUidInfo *uidInfo; /* pointer to user info */
    struct TCP_Server_Info *server; /* pointer to server info */
    atomic_t inUse; /* # of mounts (tree connections) on this ses */
    @@ -207,7 +207,7 @@ struct cifsSesInfo {
    struct cifsTconInfo {
    struct list_head cifsConnectionList;
    struct list_head openFileList;
    - struct semaphore tconSem;
    + struct mutex tconSem;
    struct cifsSesInfo *ses; /* pointer to session associated with */
    char treeName[MAX_TREE_SIZE + 1]; /* UNC name of resource (in ASCII not UTF) */
    char *nativeFileSystem;
    @@ -300,7 +300,7 @@ struct cifsFileInfo {
    unsigned closePend:1; /* file is marked to close */
    unsigned invalidHandle:1; /* file closed via session abend */
    atomic_t wrtPending; /* handle in use - defer close */
    - struct semaphore fh_sem; /* prevents reopen race after dead ses*/
    + struct mutex fh_sem; /* prevents reopen race after dead ses*/
    char * search_resume_name; /* BB removeme BB */
    unsigned int resume_name_length; /* BB removeme - field renamed and moved BB */
    struct cifs_search_info srch_inf;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/cramfs/inode.c linux-2.6.15-rc5-mutex/fs/cramfs/inode.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/cramfs/inode.c 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/cramfs/inode.c 2005-12-12 22:12:50.000000000 +0000
    @@ -22,7 +22,7 @@
    #include <linux/cramfs_fs_sb.h>
    #include <linux/buffer_head.h>
    #include <linux/vfs.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    #include <asm/uaccess.h>

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/dquot.c linux-2.6.15-rc5-mutex/fs/dquot.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/dquot.c 2005-12-08 16:23:48.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/dquot.c 2005-12-12 19:57:04.000000000 +0000
    @@ -575,7 +575,7 @@ static struct dquot *get_empty_dquot(str
    return NODQUOT;

    memset((caddr_t)dquot, 0, sizeof(struct dquot));
    - sema_init(&dquot->dq_lock, 1);
    + init_MUTEX(&dquot->dq_lock);
    INIT_LIST_HEAD(&dquot->dq_free);
    INIT_LIST_HEAD(&dquot->dq_inuse);
    INIT_HLIST_NODE(&dquot->dq_hash);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/eventpoll.c linux-2.6.15-rc5-mutex/fs/eventpoll.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/eventpoll.c 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/eventpoll.c 2005-12-12 22:12:50.000000000 +0000
    @@ -39,7 +39,7 @@
    #include <asm/io.h>
    #include <asm/mman.h>
    #include <asm/atomic.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>


    /*
    @@ -274,7 +274,7 @@ static struct super_block *eventpollfs_g
    /*
    * This semaphore is used to serialize ep_free() and eventpoll_release_file().
    */
    -static struct semaphore epsem;
    +static struct mutex epsem;

    /* Safe wake up implementation */
    static struct poll_safewake psw;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/fuse/dev.c linux-2.6.15-rc5-mutex/fs/fuse/dev.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/fuse/dev.c 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/fuse/dev.c 2005-12-12 20:31:16.000000000 +0000
    @@ -110,7 +110,7 @@ struct fuse_req *fuse_get_request(struct
    sigset_t oldset;

    block_sigs(&oldset);
    - intr = down_interruptible(&fc->outstanding_sem);
    + intr = down_sem_interruptible(&fc->outstanding_sem);
    restore_sigs(&oldset);
    return intr ? NULL : do_get_request(fc);
    }
    @@ -127,7 +127,7 @@ static void fuse_putback_request(struct
    if (fc->outstanding_debt)
    fc->outstanding_debt--;
    else
    - up(&fc->outstanding_sem);
    + up_sem(&fc->outstanding_sem);
    spin_unlock(&fuse_lock);
    }

    @@ -180,10 +180,10 @@ static void request_end(struct fuse_conn

    /* After INIT reply is received other requests can go
    out. So do (FUSE_MAX_OUTSTANDING - 1) number of
    - up()s on outstanding_sem. The last up() is done in
    + up_sem()s on outstanding_sem. The last up() is done in
    fuse_putback_request() */
    for (i = 1; i < FUSE_MAX_OUTSTANDING; i++)
    - up(&fc->outstanding_sem);
    + up_sem(&fc->outstanding_sem);
    } else if (req->in.h.opcode == FUSE_RELEASE && req->inode == NULL) {
    /* Special case for failed iget in CREATE */
    u64 nodeid = req->in.h.nodeid;
    @@ -296,7 +296,7 @@ static void queue_request(struct fuse_co
    processing the RELEASE requests. However for
    efficiency do it without blocking, so if down()
    would block, just increase the debt instead */
    - if (down_trylock(&fc->outstanding_sem))
    + if (down_sem_trylock(&fc->outstanding_sem))
    fc->outstanding_debt++;
    }
    list_add_tail(&req->list, &fc->pending);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/fuse/fuse_i.h linux-2.6.15-rc5-mutex/fs/fuse/fuse_i.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/fuse/fuse_i.h 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/fuse/fuse_i.h 2005-12-12 22:05:43.000000000 +0000
    @@ -13,7 +13,7 @@
    #include <linux/spinlock.h>
    #include <linux/mm.h>
    #include <linux/backing-dev.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    /** Max number of pages that can be used in a single read request */
    #define FUSE_MAX_PAGES_PER_REQ 32
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/hfs/btree.h linux-2.6.15-rc5-mutex/fs/hfs/btree.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/hfs/btree.h 2005-06-22 13:52:11.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/hfs/btree.h 2005-12-12 20:54:32.000000000 +0000
    @@ -33,7 +33,7 @@ struct hfs_btree {
    unsigned int depth;

    //unsigned int map1_size, map_size;
    - struct semaphore tree_lock;
    + struct mutex tree_lock;

    unsigned int pages_per_bnode;
    spinlock_t hash_lock;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/hfs/hfs_fs.h linux-2.6.15-rc5-mutex/fs/hfs/hfs_fs.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/hfs/hfs_fs.h 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/hfs/hfs_fs.h 2005-12-12 20:54:29.000000000 +0000
    @@ -56,7 +56,7 @@ struct hfs_inode_info {
    struct list_head open_dir_list;
    struct inode *rsrc_inode;

    - struct semaphore extents_lock;
    + struct mutex extents_lock;

    u16 alloc_blocks, clump_blocks;
    sector_t fs_blocks;
    @@ -142,7 +142,7 @@ struct hfs_sb_info {

    struct nls_table *nls_io, *nls_disk;

    - struct semaphore bitmap_lock;
    + struct mutex bitmap_lock;

    unsigned long flags;

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/hfsplus/hfsplus_fs.h linux-2.6.15-rc5-mutex/fs/hfsplus/hfsplus_fs.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/hfsplus/hfsplus_fs.h 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/hfsplus/hfsplus_fs.h 2005-12-12 20:51:21.000000000 +0000
    @@ -61,7 +61,7 @@ struct hfs_btree {
    unsigned int depth;

    //unsigned int map1_size, map_size;
    - struct semaphore tree_lock;
    + struct mutex tree_lock;

    unsigned int pages_per_bnode;
    spinlock_t hash_lock;
    @@ -155,7 +155,7 @@ struct hfsplus_sb_info {


    struct hfsplus_inode_info {
    - struct semaphore extents_lock;
    + struct mutex extents_lock;
    u32 clump_blocks, alloc_blocks;
    sector_t fs_blocks;
    /* Allocation extents from catalog record or volume header */
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/hpfs/hpfs_fn.h linux-2.6.15-rc5-mutex/fs/hpfs/hpfs_fn.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/hpfs/hpfs_fn.h 2005-06-22 13:52:12.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/hpfs/hpfs_fn.h 2005-12-12 20:54:14.000000000 +0000
    @@ -57,8 +57,8 @@ struct hpfs_inode_info {
    unsigned i_ea_uid : 1; /* file's uid is stored in ea */
    unsigned i_ea_gid : 1; /* file's gid is stored in ea */
    unsigned i_dirty : 1;
    - struct semaphore i_sem;
    - struct semaphore i_parent;
    + struct mutex i_sem;
    + struct mutex i_parent;
    loff_t **i_rddir_off;
    struct inode vfs_inode;
    };
    @@ -88,7 +88,7 @@ struct hpfs_sb_info {
    unsigned *sb_bmp_dir; /* main bitmap directory */
    unsigned sb_c_bitmap; /* current bitmap */
    unsigned sb_max_fwd_alloc; /* max forwad allocation */
    - struct semaphore hpfs_creation_de; /* when creating dirents, nobody else
    + struct mutex hpfs_creation_de; /* when creating dirents, nobody else
    can alloc blocks */
    /*unsigned sb_mounting : 1;*/
    int sb_timeshift;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/inode.c linux-2.6.15-rc5-mutex/fs/inode.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/inode.c 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/inode.c 2005-12-12 17:30:32.000000000 +0000
    @@ -192,7 +192,7 @@ void inode_init_once(struct inode *inode
    INIT_HLIST_NODE(&inode->i_hash);
    INIT_LIST_HEAD(&inode->i_dentry);
    INIT_LIST_HEAD(&inode->i_devices);
    - sema_init(&inode->i_sem, 1);
    + init_MUTEX(&inode->i_sem);
    init_rwsem(&inode->i_alloc_sem);
    INIT_RADIX_TREE(&inode->i_data.page_tree, GFP_ATOMIC);
    rwlock_init(&inode->i_data.tree_lock);
    @@ -205,7 +205,7 @@ void inode_init_once(struct inode *inode
    i_size_ordered_init(inode);
    #ifdef CONFIG_INOTIFY
    INIT_LIST_HEAD(&inode->inotify_watches);
    - sema_init(&inode->inotify_sem, 1);
    + init_MUTEX(&inode->inotify_sem);
    #endif
    }

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/inotify.c linux-2.6.15-rc5-mutex/fs/inotify.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/inotify.c 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/inotify.c 2005-12-12 18:07:19.000000000 +0000
    @@ -83,7 +83,7 @@ int inotify_max_queued_events;
    struct inotify_device {
    wait_queue_head_t wq; /* wait queue for i/o */
    struct idr idr; /* idr mapping wd -> watch */
    - struct semaphore sem; /* protects this bad boy */
    + struct mutex sem; /* protects this bad boy */
    struct list_head events; /* list of queued events */
    struct list_head watches; /* list of watches */
    atomic_t count; /* reference count */
    @@ -903,7 +903,7 @@ asmlinkage long sys_inotify_init(void)
    INIT_LIST_HEAD(&dev->events);
    INIT_LIST_HEAD(&dev->watches);
    init_waitqueue_head(&dev->wq);
    - sema_init(&dev->sem, 1);
    + init_MUTEX(&dev->sem);
    dev->event_count = 0;
    dev->queue_size = 0;
    dev->max_events = inotify_max_queued_events;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/isofs/compress.c linux-2.6.15-rc5-mutex/fs/isofs/compress.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/isofs/compress.c 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/isofs/compress.c 2005-12-12 20:47:06.000000000 +0000
    @@ -34,7 +34,7 @@ static char zisofs_sink_page[PAGE_CACHE_
    * allocation; this avoids failures at block-decompression time.
    */
    static void *zisofs_zlib_workspace;
    -static struct semaphore zisofs_zlib_semaphore;
    +static struct mutex zisofs_zlib_semaphore;

    /*
    * When decompressing, we typically obtain more than one page
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jffs/inode-v23.c linux-2.6.15-rc5-mutex/fs/jffs/inode-v23.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jffs/inode-v23.c 2005-11-01 13:19:14.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/jffs/inode-v23.c 2005-12-12 22:12:50.000000000 +0000
    @@ -42,7 +42,7 @@
    #include <linux/quotaops.h>
    #include <linux/highmem.h>
    #include <linux/vfs.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>
    #include <asm/byteorder.h>
    #include <asm/uaccess.h>

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jffs/intrep.c linux-2.6.15-rc5-mutex/fs/jffs/intrep.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jffs/intrep.c 2005-12-08 16:23:49.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/jffs/intrep.c 2005-12-12 22:12:50.000000000 +0000
    @@ -62,7 +62,7 @@
    #include <linux/fs.h>
    #include <linux/stat.h>
    #include <linux/pagemap.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>
    #include <asm/byteorder.h>
    #include <linux/smp_lock.h>
    #include <linux/time.h>
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jffs/jffs_fm.h linux-2.6.15-rc5-mutex/fs/jffs/jffs_fm.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jffs/jffs_fm.h 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/jffs/jffs_fm.h 2005-12-12 20:52:06.000000000 +0000
    @@ -97,7 +97,7 @@ struct jffs_fmcontrol
    struct jffs_fm *tail;
    struct jffs_fm *head_extra;
    struct jffs_fm *tail_extra;
    - struct semaphore biglock;
    + struct mutex biglock;
    };

    /* Notice the two members head_extra and tail_extra in the jffs_control
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_dmap.h linux-2.6.15-rc5-mutex/fs/jfs/jfs_dmap.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_dmap.h 2005-01-04 11:13:39.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/jfs/jfs_dmap.h 2005-12-12 20:50:42.000000000 +0000
    @@ -243,7 +243,7 @@ struct dbmap {
    struct bmap {
    struct dbmap db_bmap; /* on-disk aggregate map descriptor */
    struct inode *db_ipbmap; /* ptr to aggregate map incore inode */
    - struct semaphore db_bmaplock; /* aggregate map lock */
    + struct mutex db_bmaplock; /* aggregate map lock */
    atomic_t db_active[MAXAG]; /* count of active, open files in AG */
    u32 *db_DBmap;
    };
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_imap.h linux-2.6.15-rc5-mutex/fs/jfs/jfs_imap.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_imap.h 2005-01-04 11:13:39.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/jfs/jfs_imap.h 2005-12-12 20:51:02.000000000 +0000
    @@ -140,8 +140,8 @@ struct dinomap {
    struct inomap {
    struct dinomap im_imap; /* 4096: inode allocation control */
    struct inode *im_ipimap; /* 4: ptr to inode for imap */
    - struct semaphore im_freelock; /* 4: iag free list lock */
    - struct semaphore im_aglock[MAXAG]; /* 512: per AG locks */
    + struct mutex im_freelock; /* 4: iag free list lock */
    + struct mutex im_aglock[MAXAG]; /* 512: per AG locks */
    u32 *im_DBGdimap;
    atomic_t im_numinos; /* num of backed inodes */
    atomic_t im_numfree; /* num of free backed inodes */
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_incore.h linux-2.6.15-rc5-mutex/fs/jfs/jfs_incore.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_incore.h 2005-06-22 13:52:14.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/jfs/jfs_incore.h 2005-12-12 20:50:47.000000000 +0000
    @@ -67,7 +67,7 @@ struct jfs_inode_info {
    * dirty inodes may be committed while a new transaction on the
    * inode is blocked in txBegin or TxBeginAnon
    */
    - struct semaphore commit_sem;
    + struct mutex commit_sem;
    /* xattr_sem allows us to access the xattrs without taking i_sem */
    struct rw_semaphore xattr_sem;
    lid_t xtlid; /* lid of xtree lock on directory */
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_logmgr.h linux-2.6.15-rc5-mutex/fs/jfs/jfs_logmgr.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/jfs/jfs_logmgr.h 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/jfs/jfs_logmgr.h 2005-12-12 20:50:52.000000000 +0000
    @@ -389,7 +389,7 @@ struct jfs_log {
    int eor; /* 4: eor of last record in eol page */
    struct lbuf *bp; /* 4: current log page buffer */

    - struct semaphore loglock; /* 4: log write serialization lock */
    + struct mutex loglock; /* 4: log write serialization lock */

    /* syncpt */
    int nextsync; /* 4: bytes to write before next syncpt */
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/libfs.c linux-2.6.15-rc5-mutex/fs/libfs.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/libfs.c 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/libfs.c 2005-12-12 18:01:44.000000000 +0000
    @@ -529,7 +529,7 @@ struct simple_attr {
    char set_buf[24];
    void *data;
    const char *fmt; /* format for read operation */
    - struct semaphore sem; /* protects access to these buffers */
    + struct mutex sem; /* protects access to these buffers */
    };

    /* simple_attr_open is called by an actual attribute open file operation
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/lockd/svc.c linux-2.6.15-rc5-mutex/fs/lockd/svc.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/lockd/svc.c 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/lockd/svc.c 2005-12-12 17:37:21.000000000 +0000
    @@ -49,7 +49,7 @@ static pid_t nlmsvc_pid;
    int nlmsvc_grace_period;
    unsigned long nlmsvc_timeout;

    -static DECLARE_MUTEX_LOCKED(lockd_start);
    +static DECLARE_COMPLETION(lockd_start);
    static DECLARE_WAIT_QUEUE_HEAD(lockd_exit);

    /*
    @@ -112,7 +112,7 @@ lockd(struct svc_rqst *rqstp)
    * Let our maker know we're running.
    */
    nlmsvc_pid = current->pid;
    - up(&lockd_start);
    + complete(&lockd_start);

    daemonize("lockd");

    @@ -257,13 +257,14 @@ lockd_up(void)
    /*
    * Create the kernel thread and wait for it to start.
    */
    + init_completion(&lockd_start);
    error = svc_create_thread(lockd, serv);
    if (error) {
    printk(KERN_WARNING
    "lockd_up: create thread failed, error=%d\n", error);
    goto destroy_and_out;
    }
    - down(&lockd_start);
    + wait_for_completion(&lockd_start);

    /*
    * Note: svc_serv structures have an initial use count of 1,
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/locks.c linux-2.6.15-rc5-mutex/fs/locks.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/locks.c 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/locks.c 2005-12-12 22:12:50.000000000 +0000
    @@ -125,8 +125,8 @@
    #include <linux/syscalls.h>
    #include <linux/time.h>
    #include <linux/rcupdate.h>
    +#include <linux/semaphore.h>

    -#include <asm/semaphore.h>
    #include <asm/uaccess.h>

    #define IS_POSIX(fl) (fl->fl_flags & FL_POSIX)
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/nfs/idmap.c linux-2.6.15-rc5-mutex/fs/nfs/idmap.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/nfs/idmap.c 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/nfs/idmap.c 2005-12-12 20:52:50.000000000 +0000
    @@ -70,8 +70,8 @@ struct idmap {
    struct dentry *idmap_dentry;
    wait_queue_head_t idmap_wq;
    struct idmap_msg idmap_im;
    - struct semaphore idmap_lock; /* Serializes upcalls */
    - struct semaphore idmap_im_lock; /* Protects the hashtable */
    + struct mutex idmap_lock; /* Serializes upcalls */
    + struct mutex idmap_im_lock; /* Protects the hashtable */
    struct idmap_hashtable idmap_user_hash;
    struct idmap_hashtable idmap_group_hash;
    };
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/ntfs/inode.h linux-2.6.15-rc5-mutex/fs/ntfs/inode.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/ntfs/inode.h 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/ntfs/inode.h 2005-12-12 22:12:50.000000000 +0000
    @@ -28,8 +28,8 @@
    #include <linux/fs.h>
    #include <linux/seq_file.h>
    #include <linux/list.h>
    +#include <linux/semaphore.h>
    #include <asm/atomic.h>
    -#include <asm/semaphore.h>

    #include "layout.h"
    #include "volume.h"
    @@ -81,7 +81,7 @@ struct _ntfs_inode {
    * The following fields are only valid for real inodes and extent
    * inodes.
    */
    - struct semaphore mrec_lock; /* Lock for serializing access to the
    + struct mutex mrec_lock; /* Lock for serializing access to the
    mft record belonging to this inode. */
    struct page *page; /* The page containing the mft record of the
    inode. This should only be touched by the
    @@ -119,7 +119,7 @@ struct _ntfs_inode {
    u8 block_clusters; /* Number of clusters per cb. */
    } compressed;
    } itype;
    - struct semaphore extent_lock; /* Lock for accessing/modifying the
    + struct mutex extent_lock; /* Lock for accessing/modifying the
    below . */
    s32 nr_extents; /* For a base mft record, the number of attached extent
    inodes (0 if none), for extent records and for fake
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/ntfs/ntfs.h linux-2.6.15-rc5-mutex/fs/ntfs/ntfs.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/ntfs/ntfs.h 2005-08-30 13:56:28.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/ntfs/ntfs.h 2005-12-12 20:50:25.000000000 +0000
    @@ -91,7 +91,7 @@ extern void free_compression_buffers(voi

    /* From fs/ntfs/super.c */
    #define default_upcase_len 0x10000
    -extern struct semaphore ntfs_lock;
    +extern struct mutex ntfs_lock;

    typedef struct {
    int val;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/partitions/devfs.c linux-2.6.15-rc5-mutex/fs/partitions/devfs.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/partitions/devfs.c 2005-01-04 11:13:41.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/partitions/devfs.c 2005-12-12 22:12:50.000000000 +0000
    @@ -6,14 +6,14 @@
    #include <linux/vmalloc.h>
    #include <linux/genhd.h>
    #include <linux/bitops.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>


    struct unique_numspace {
    u32 num_free; /* Num free in bits */
    u32 length; /* Array length in bytes */
    unsigned long *bits;
    - struct semaphore mutex;
    + struct mutex mutex;
    };

    static DECLARE_MUTEX(numspace_mutex);
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/reiserfs/journal.c linux-2.6.15-rc5-mutex/fs/reiserfs/journal.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/reiserfs/journal.c 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/reiserfs/journal.c 2005-12-12 22:12:50.000000000 +0000
    @@ -39,7 +39,7 @@
    #include <asm/system.h>

    #include <linux/time.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    #include <linux/vmalloc.h>
    #include <linux/reiserfs_fs.h>
    @@ -2473,7 +2473,7 @@ static struct reiserfs_journal_list *all
    INIT_LIST_HEAD(&jl->j_working_list);
    INIT_LIST_HEAD(&jl->j_tail_bh_list);
    INIT_LIST_HEAD(&jl->j_bh_list);
    - sema_init(&jl->j_commit_lock, 1);
    + init_MUTEX(&jl->j_commit_lock);
    SB_JOURNAL(s)->j_num_lists++;
    get_journal_list(jl);
    return jl;
    @@ -2744,8 +2744,8 @@ int journal_init(struct super_block *p_s
    journal->j_last = NULL;
    journal->j_first = NULL;
    init_waitqueue_head(&(journal->j_join_wait));
    - sema_init(&journal->j_lock, 1);
    - sema_init(&journal->j_flush_sem, 1);
    + init_MUTEX(&journal->j_lock);
    + init_MUTEX(&journal->j_flush_sem);

    journal->j_trans_id = 10;
    journal->j_mount_id = 10;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/reiserfs/xattr.c linux-2.6.15-rc5-mutex/fs/reiserfs/xattr.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/reiserfs/xattr.c 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/reiserfs/xattr.c 2005-12-12 22:12:50.000000000 +0000
    @@ -43,7 +43,7 @@
    #include <asm/checksum.h>
    #include <linux/smp_lock.h>
    #include <linux/stat.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    #define FL_READONLY 128
    #define FL_DIR_SEM_HELD 256
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/seq_file.c linux-2.6.15-rc5-mutex/fs/seq_file.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/seq_file.c 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/seq_file.c 2005-12-12 17:32:40.000000000 +0000
    @@ -37,7 +37,7 @@ int seq_open(struct file *file, struct s
    file->private_data = p;
    }
    memset(p, 0, sizeof(*p));
    - sema_init(&p->sem, 1);
    + init_MUTEX(&p->sem);
    p->op = op;

    /*
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/super.c linux-2.6.15-rc5-mutex/fs/super.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/super.c 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/super.c 2005-12-12 17:25:56.000000000 +0000
    @@ -72,13 +72,13 @@ static struct super_block *alloc_super(v
    INIT_HLIST_HEAD(&s->s_anon);
    INIT_LIST_HEAD(&s->s_inodes);
    init_rwsem(&s->s_umount);
    - sema_init(&s->s_lock, 1);
    + init_MUTEX(&s->s_lock);
    down_write(&s->s_umount);
    s->s_count = S_BIAS;
    atomic_set(&s->s_active, 1);
    - sema_init(&s->s_vfs_rename_sem,1);
    - sema_init(&s->s_dquot.dqio_sem, 1);
    - sema_init(&s->s_dquot.dqonoff_sem, 1);
    + init_MUTEX(&s->s_vfs_rename_sem);
    + init_MUTEX(&s->s_dquot.dqio_sem);
    + init_MUTEX(&s->s_dquot.dqonoff_sem);
    init_rwsem(&s->s_dquot.dqptr_sem);
    init_waitqueue_head(&s->s_wait_unfrozen);
    s->s_maxbytes = MAX_NON_LFS;
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/sysfs/file.c linux-2.6.15-rc5-mutex/fs/sysfs/file.c
    --- /warthog/kernels/linux-2.6.15-rc5/fs/sysfs/file.c 2005-08-30 13:56:29.000000000 +0100
    +++ linux-2.6.15-rc5-mutex/fs/sysfs/file.c 2005-12-12 22:12:50.000000000 +0000
    @@ -7,7 +7,7 @@
    #include <linux/kobject.h>
    #include <linux/namei.h>
    #include <asm/uaccess.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    #include "sysfs.h"

    @@ -55,7 +55,7 @@ struct sysfs_buffer {
    loff_t pos;
    char * page;
    struct sysfs_ops * ops;
    - struct semaphore sem;
    + struct mutex sem;
    int needs_read_fill;
    };

    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/mutex.h linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/mutex.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/mutex.h 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/mutex.h 2005-12-12 22:12:50.000000000 +0000
    @@ -19,7 +19,7 @@
    #define __XFS_SUPPORT_MUTEX_H__

    #include <linux/spinlock.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    /*
    * Map the mutex'es from IRIX to Linux semaphores.
    @@ -28,10 +28,10 @@
    * callers.
    */
    #define MUTEX_DEFAULT 0x0
    -typedef struct semaphore mutex_t;
    +typedef struct mutex mutex_t;

    -#define mutex_init(lock, type, name) sema_init(lock, 1)
    -#define mutex_destroy(lock) sema_init(lock, -99)
    +#define mutex_init(lock, type, name) init_MUTEX(lock)
    +#define mutex_destroy(lock) do {} while(0)
    #define mutex_lock(lock, num) down(lock)
    #define mutex_trylock(lock) (down_trylock(lock) ? 0 : 1)
    #define mutex_unlock(lock) up(lock)
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/sema.h linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/sema.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/sema.h 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/sema.h 2005-12-12 22:05:13.000000000 +0000
    @@ -21,7 +21,7 @@
    #include <linux/time.h>
    #include <linux/wait.h>
    #include <asm/atomic.h>
    -#include <asm/semaphore.h>
    +#include <linux/semaphore.h>

    /*
    * sema_t structure just maps to struct semaphore in Linux kernel.
    diff -uNrp /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/xfs_buf.h linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/xfs_buf.h
    --- /warthog/kernels/linux-2.6.15-rc5/fs/xfs/linux-2.6/xfs_buf.h 2005-12-08 16:23:50.000000000 +0000
    +++ linux-2.6.15-rc5-mutex/fs/xfs/linux-2.6/xfs_buf.h 2005-12-12 20:47:50.000000000 +0000
    @@ -114,7 +114,7 @@ typedef int (*page_buf_bdstrat_t)(struct
    #define PB_PAGES 2

    typedef struct xfs_buf {
    - struct semaphore pb_sema; /* semaphore for lockables */
    + struct mutex pb_sema; /* semaphore for lockables */
    unsigned long pb_queuetime; /* time buffer was queued */
    atomic_t pb_pin_count; /* pin count */
    wait_queue_head_t pb_waiters; /* unpin waiters */
    @@ -134,7 +134,7 @@ typedef struct xfs_buf {
    page_buf_iodone_t pb_iodone; /* I/O completion function */
    page_buf_relse_t pb_relse; /* releasing function */
    page_buf_bdstrat_t pb_strat; /* pre-write function */
    - struct semaphore pb_iodonesema; /* Semaphore for I/O waiters */
    + struct mutex pb_iodonesema; /* Semaphore for I/O waiters */
    void *pb_fspriv;
    void *pb_fspriv2;
    void *pb_fspriv3;
    -
    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: 2005-12-13 00:56    [W:0.067 / U:33.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site