]> git.baikalelectronics.ru Git - kernel.git/commit
leases: fix write-open/read-lease race
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 21 Sep 2011 14:58:13 +0000 (10:58 -0400)
committerroot <root@serles.lst.de>
Fri, 28 Oct 2011 12:59:00 +0000 (14:59 +0200)
commit6e29773ed974e6d451912076593fde14506f6fb1
tree0065bcc05b19a99d8785ce523f992a48fe573e79
parent0619065221cea8f46f56f39e20841977b4d0b9c2
leases: fix write-open/read-lease race

In setlease, we use i_writecount to decide whether we can give out a
read lease.

In open, we break leases before incrementing i_writecount.

There is therefore a window between the break lease and the i_writecount
increment when setlease could add a new read lease.

This would leave us with a simultaneous write open and read lease, which
shouldn't happen.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/namei.c
fs/open.c