[FIX] Re: 2.3.10: Bug with locks held in fs code

Alexander Viro (viro@math.psu.edu)
Mon, 12 Jul 1999 12:54:37 -0400 (EDT)


On Mon, 12 Jul 1999, Michael Matz wrote:

> Hi,
>
> By browsing in the latest (2.3.10) diff I observed the following strange
> things:

[snip]
> In the middle, the "goto out_putf" exits this function without unlocking
> the &files->file_lock.
> And similarly in linux/fs/file_table.c:
[snip]

Ooops. Sorry, my fault. Patch follows:

diff -urN linux-2.3.10/fs/fcntl.c linux-bird.files/fs/fcntl.c
--- linux-2.3.10/fs/fcntl.c Fri Jul 9 06:15:45 1999
+++ linux-bird.files/fs/fcntl.c Mon Jul 12 12:39:42 1999
@@ -31,6 +31,7 @@
return error;

out_putf:
+ write_unlock(&files->file_lock);
fput(file);
goto out;
}
diff -urN linux-2.3.10/fs/file_table.c linux-bird.files/fs/file_table.c
--- linux-2.3.10/fs/file_table.c Fri Jul 9 06:15:45 1999
+++ linux-bird.files/fs/file_table.c Mon Jul 12 12:38:31 1999
@@ -182,7 +182,7 @@

/* Writable file? */
if (S_ISREG(inode->i_mode) && (file->f_mode & FMODE_WRITE))
- return 0;
+ goto too_bad;
}
file_list_unlock();
return 1; /* Tis' cool bro. */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/