2008-03-04 19:48:39

by Andrew Morton

[permalink] [raw]
Subject: - use-page_cache_xxx-in-fs-ext3.patch removed from -mm tree


The patch titled
Use page_cache_xxx in fs/ext3
has been removed from the -mm tree. Its filename was
use-page_cache_xxx-in-fs-ext3.patch

This patch was dropped because it was nacked

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: Use page_cache_xxx in fs/ext3
From: Christoph Lameter <[email protected]>

Use page_cache_xxx in fs/ext3

Reviewed-by: Dave Chinner <[email protected]>
Signed-off-by: Christoph Lameter <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

fs/ext3/dir.c | 3 ++-
fs/ext3/inode.c | 39 ++++++++++++++++++++-------------------
2 files changed, 22 insertions(+), 20 deletions(-)

diff -puN fs/ext3/dir.c~use-page_cache_xxx-in-fs-ext3 fs/ext3/dir.c
--- a/fs/ext3/dir.c~use-page_cache_xxx-in-fs-ext3
+++ a/fs/ext3/dir.c
@@ -133,7 +133,8 @@ static int ext3_readdir(struct file * fi
&map_bh, 0, 0);
if (err > 0) {
pgoff_t index = map_bh.b_blocknr >>
- (PAGE_CACHE_SHIFT - inode->i_blkbits);
+ (page_cache_shift(inode->i_mapping)
+ - inode->i_blkbits);
if (!ra_has_index(&filp->f_ra, index))
page_cache_sync_readahead(
sb->s_bdev->bd_inode->i_mapping,
diff -puN fs/ext3/inode.c~use-page_cache_xxx-in-fs-ext3 fs/ext3/inode.c
--- a/fs/ext3/inode.c~use-page_cache_xxx-in-fs-ext3
+++ a/fs/ext3/inode.c
@@ -1147,8 +1147,8 @@ static int ext3_write_begin(struct file
pgoff_t index;
unsigned from, to;

- index = pos >> PAGE_CACHE_SHIFT;
- from = pos & (PAGE_CACHE_SIZE - 1);
+ index = page_cache_index(mapping, pos);
+ from = page_cache_offset(mapping, pos);
to = from + len;

retry:
@@ -1244,7 +1244,7 @@ static int ext3_ordered_write_end(struct
unsigned from, to;
int ret = 0, ret2;

- from = pos & (PAGE_CACHE_SIZE - 1);
+ from = page_cache_offset(mapping, pos);
to = from + len;

ret = walk_page_buffers(handle, page_buffers(page),
@@ -1314,7 +1314,7 @@ static int ext3_journalled_write_end(str
int partial = 0;
unsigned from, to;

- from = pos & (PAGE_CACHE_SIZE - 1);
+ from = page_cache_offset(mapping, pos);
to = from + len;

if (copied < len) {
@@ -1477,6 +1477,7 @@ static int ext3_ordered_writepage(struct
handle_t *handle = NULL;
int ret = 0;
int err;
+ int pagesize = page_cache_size(inode->i_mapping);

J_ASSERT(PageLocked(page));

@@ -1499,8 +1500,7 @@ static int ext3_ordered_writepage(struct
(1 << BH_Dirty)|(1 << BH_Uptodate));
}
page_bufs = page_buffers(page);
- walk_page_buffers(handle, page_bufs, 0,
- PAGE_CACHE_SIZE, NULL, bget_one);
+ walk_page_buffers(handle, page_bufs, 0, pagesize, NULL, bget_one);

ret = block_write_full_page(page, ext3_get_block, wbc);

@@ -1517,13 +1517,12 @@ static int ext3_ordered_writepage(struct
* and generally junk.
*/
if (ret == 0) {
- err = walk_page_buffers(handle, page_bufs, 0, PAGE_CACHE_SIZE,
- NULL, journal_dirty_data_fn);
+ err = walk_page_buffers(handle, page_bufs, 0, pagesize,
+ NULL, journal_dirty_data_fn);
if (!ret)
ret = err;
}
- walk_page_buffers(handle, page_bufs, 0,
- PAGE_CACHE_SIZE, NULL, bput_one);
+ walk_page_buffers(handle, page_bufs, 0, pagesize, NULL, bput_one);
err = ext3_journal_stop(handle);
if (!ret)
ret = err;
@@ -1571,10 +1570,12 @@ out_fail:
static int ext3_journalled_writepage(struct page *page,
struct writeback_control *wbc)
{
- struct inode *inode = page->mapping->host;
+ struct address_space *mapping = page->mapping;
+ struct inode *inode = mapping->host;
handle_t *handle = NULL;
int ret = 0;
int err;
+ int pagesize = page_cache_size(inode->i_mapping);

if (ext3_journal_current_handle())
goto no_write;
@@ -1591,17 +1592,16 @@ static int ext3_journalled_writepage(str
* doesn't seem much point in redirtying the page here.
*/
ClearPageChecked(page);
- ret = block_prepare_write(page, 0, PAGE_CACHE_SIZE,
- ext3_get_block);
+ ret = block_prepare_write(page, 0, pagesize, ext3_get_block);
if (ret != 0) {
ext3_journal_stop(handle);
goto out_unlock;
}
ret = walk_page_buffers(handle, page_buffers(page), 0,
- PAGE_CACHE_SIZE, NULL, do_journal_get_write_access);
+ pagesize, NULL, do_journal_get_write_access);

err = walk_page_buffers(handle, page_buffers(page), 0,
- PAGE_CACHE_SIZE, NULL, write_end_fn);
+ pagesize, NULL, write_end_fn);
if (ret == 0)
ret = err;
EXT3_I(inode)->i_state |= EXT3_STATE_JDATA;
@@ -1824,8 +1824,8 @@ void ext3_set_aops(struct inode *inode)
static int ext3_block_truncate_page(handle_t *handle, struct page *page,
struct address_space *mapping, loff_t from)
{
- ext3_fsblk_t index = from >> PAGE_CACHE_SHIFT;
- unsigned offset = from & (PAGE_CACHE_SIZE-1);
+ ext3_fsblk_t index = page_cache_index(mapping, from);
+ unsigned offset = page_cache_offset(mapping, from);
unsigned blocksize, iblock, length, pos;
struct inode *inode = mapping->host;
struct buffer_head *bh;
@@ -1833,7 +1833,8 @@ static int ext3_block_truncate_page(hand

blocksize = inode->i_sb->s_blocksize;
length = blocksize - (offset & (blocksize - 1));
- iblock = index << (PAGE_CACHE_SHIFT - inode->i_sb->s_blocksize_bits);
+ iblock = index <<
+ (page_cache_shift(mapping) - inode->i_sb->s_blocksize_bits);

/*
* For "nobh" option, we can only work if we don't need to
@@ -2312,7 +2313,7 @@ void ext3_truncate(struct inode *inode)
page = NULL;
} else {
page = grab_cache_page(mapping,
- inode->i_size >> PAGE_CACHE_SHIFT);
+ page_cache_index(mapping, inode->i_size));
if (!page)
return;
}
_

Patches currently in -mm which might be from [email protected] are

origin.patch
git-unionfs.patch
git-slub.patch
hugetlb-fix-pool-shrinking-while-in-restricted-cpuset.patch
x86-cast-cmpxchg-and-cmpxchg_local-result-for-386-and-486.patch
ntfs-fix-nommu-build.patch
slub-fix-possible-null-pointer-dereference.patch
slub-fix-possible-null-pointer-dereference-fix.patch
remove-set_migrateflags.patch
mm-use-zonelists-instead-of-zones-when-direct-reclaiming-pages.patch
mm-introduce-node_zonelist-for-accessing-the-zonelist-for-a-gfp-mask.patch
mm-remember-what-the-preferred-zone-is-for-zone_statistics.patch
mm-use-two-zonelist-that-are-filtered-by-gfp-mask.patch
mm-have-zonelist-contains-structs-with-both-a-zone-pointer-and-zone_idx.patch
mm-filter-based-on-a-nodemask-as-well-as-a-gfp_mask.patch
mm-move-cache_line_size-to-linux-cacheh.patch
use-page_cache_xxx-in-fs-ext3.patch
use-page_cache_xxx-in-fs-reiserfs.patch
use-page_cache_xxx-in-fs-ext4.patch
reiser4.patch
reiser4-portion-of-zero_user-cleanup-patch.patch
page-owner-tracking-leak-detector.patch