]> err.no Git - linux-2.6/blobdiff - fs/fifo.c
[IPV6]: Cleanups for net/ipv6/addrconf.c (kzalloc, early exit) v2
[linux-2.6] / fs / fifo.c
index 5455916241f04efb9d1f8fe90bab1d73bcaae0f5..d13fcd3ec803bd52e335ef340d09c817421b05fb 100644 (file)
--- a/fs/fifo.c
+++ b/fs/fifo.c
@@ -34,10 +34,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
 {
        int ret;
 
-       ret = -ERESTARTSYS;
-       if (down_interruptible(PIPE_SEM(*inode)))
-               goto err_nolock_nocleanup;
-
+       mutex_lock(PIPE_MUTEX(*inode));
        if (!inode->i_pipe) {
                ret = -ENOMEM;
                if(!pipe_new(inode))
@@ -119,7 +116,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
        }
 
        /* Ok! */
-       up(PIPE_SEM(*inode));
+       mutex_unlock(PIPE_MUTEX(*inode));
        return 0;
 
 err_rd:
@@ -139,9 +136,7 @@ err:
                free_pipe_info(inode);
 
 err_nocleanup:
-       up(PIPE_SEM(*inode));
-
-err_nolock_nocleanup:
+       mutex_unlock(PIPE_MUTEX(*inode));
        return ret;
 }