diff options
author | Dmitry Monakhov <dmonakhov@openvz.org> | 2010-03-02 07:51:02 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-03-04 18:20:27 -0500 |
commit | 49792c806d0bfd53afc789dcdf50dc9bed2c5b83 (patch) | |
tree | b24280fa76abad273e0f009a9cfe49b594c2becf | |
parent | 7eb4969e04060dcf3fbd46af9c21b1059b853068 (diff) |
ext3: add writepage sanity checks
- There is theoretical possibility to perform writepage on
RO superblock. Add explicit check for what case.
- Page must being locked before writepage.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/ext3/inode.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index c0ff9d6ffde6..eda9121d7d57 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c | |||
@@ -1528,6 +1528,7 @@ static int ext3_ordered_writepage(struct page *page, | |||
1528 | int err; | 1528 | int err; |
1529 | 1529 | ||
1530 | J_ASSERT(PageLocked(page)); | 1530 | J_ASSERT(PageLocked(page)); |
1531 | WARN_ON_ONCE(IS_RDONLY(inode)); | ||
1531 | 1532 | ||
1532 | /* | 1533 | /* |
1533 | * We give up here if we're reentered, because it might be for a | 1534 | * We give up here if we're reentered, because it might be for a |
@@ -1600,6 +1601,9 @@ static int ext3_writeback_writepage(struct page *page, | |||
1600 | int ret = 0; | 1601 | int ret = 0; |
1601 | int err; | 1602 | int err; |
1602 | 1603 | ||
1604 | J_ASSERT(PageLocked(page)); | ||
1605 | WARN_ON_ONCE(IS_RDONLY(inode)); | ||
1606 | |||
1603 | if (ext3_journal_current_handle()) | 1607 | if (ext3_journal_current_handle()) |
1604 | goto out_fail; | 1608 | goto out_fail; |
1605 | 1609 | ||
@@ -1642,6 +1646,9 @@ static int ext3_journalled_writepage(struct page *page, | |||
1642 | int ret = 0; | 1646 | int ret = 0; |
1643 | int err; | 1647 | int err; |
1644 | 1648 | ||
1649 | J_ASSERT(PageLocked(page)); | ||
1650 | WARN_ON_ONCE(IS_RDONLY(inode)); | ||
1651 | |||
1645 | if (ext3_journal_current_handle()) | 1652 | if (ext3_journal_current_handle()) |
1646 | goto no_write; | 1653 | goto no_write; |
1647 | 1654 | ||