aboutsummaryrefslogtreecommitdiffstats
path: root/fs/logfs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/logfs/file.c')
-rw-r--r--fs/logfs/file.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/fs/logfs/file.c b/fs/logfs/file.c
index 61eaeb1b6cac..f01ddfb1a03b 100644
--- a/fs/logfs/file.c
+++ b/fs/logfs/file.c
@@ -15,21 +15,21 @@ static int logfs_write_begin(struct file *file, struct address_space *mapping,
15{ 15{
16 struct inode *inode = mapping->host; 16 struct inode *inode = mapping->host;
17 struct page *page; 17 struct page *page;
18 pgoff_t index = pos >> PAGE_CACHE_SHIFT; 18 pgoff_t index = pos >> PAGE_SHIFT;
19 19
20 page = grab_cache_page_write_begin(mapping, index, flags); 20 page = grab_cache_page_write_begin(mapping, index, flags);
21 if (!page) 21 if (!page)
22 return -ENOMEM; 22 return -ENOMEM;
23 *pagep = page; 23 *pagep = page;
24 24
25 if ((len == PAGE_CACHE_SIZE) || PageUptodate(page)) 25 if ((len == PAGE_SIZE) || PageUptodate(page))
26 return 0; 26 return 0;
27 if ((pos & PAGE_CACHE_MASK) >= i_size_read(inode)) { 27 if ((pos & PAGE_MASK) >= i_size_read(inode)) {
28 unsigned start = pos & (PAGE_CACHE_SIZE - 1); 28 unsigned start = pos & (PAGE_SIZE - 1);
29 unsigned end = start + len; 29 unsigned end = start + len;
30 30
31 /* Reading beyond i_size is simple: memset to zero */ 31 /* Reading beyond i_size is simple: memset to zero */
32 zero_user_segments(page, 0, start, end, PAGE_CACHE_SIZE); 32 zero_user_segments(page, 0, start, end, PAGE_SIZE);
33 return 0; 33 return 0;
34 } 34 }
35 return logfs_readpage_nolock(page); 35 return logfs_readpage_nolock(page);
@@ -41,11 +41,11 @@ static int logfs_write_end(struct file *file, struct address_space *mapping,
41{ 41{
42 struct inode *inode = mapping->host; 42 struct inode *inode = mapping->host;
43 pgoff_t index = page->index; 43 pgoff_t index = page->index;
44 unsigned start = pos & (PAGE_CACHE_SIZE - 1); 44 unsigned start = pos & (PAGE_SIZE - 1);
45 unsigned end = start + copied; 45 unsigned end = start + copied;
46 int ret = 0; 46 int ret = 0;
47 47
48 BUG_ON(PAGE_CACHE_SIZE != inode->i_sb->s_blocksize); 48 BUG_ON(PAGE_SIZE != inode->i_sb->s_blocksize);
49 BUG_ON(page->index > I3_BLOCKS); 49 BUG_ON(page->index > I3_BLOCKS);
50 50
51 if (copied < len) { 51 if (copied < len) {
@@ -61,8 +61,8 @@ static int logfs_write_end(struct file *file, struct address_space *mapping,
61 if (copied == 0) 61 if (copied == 0)
62 goto out; /* FIXME: do we need to update inode? */ 62 goto out; /* FIXME: do we need to update inode? */
63 63
64 if (i_size_read(inode) < (index << PAGE_CACHE_SHIFT) + end) { 64 if (i_size_read(inode) < (index << PAGE_SHIFT) + end) {
65 i_size_write(inode, (index << PAGE_CACHE_SHIFT) + end); 65 i_size_write(inode, (index << PAGE_SHIFT) + end);
66 mark_inode_dirty_sync(inode); 66 mark_inode_dirty_sync(inode);
67 } 67 }
68 68
@@ -75,7 +75,7 @@ static int logfs_write_end(struct file *file, struct address_space *mapping,
75 } 75 }
76out: 76out:
77 unlock_page(page); 77 unlock_page(page);
78 page_cache_release(page); 78 put_page(page);
79 return ret ? ret : copied; 79 return ret ? ret : copied;
80} 80}
81 81
@@ -118,7 +118,7 @@ static int logfs_writepage(struct page *page, struct writeback_control *wbc)
118{ 118{
119 struct inode *inode = page->mapping->host; 119 struct inode *inode = page->mapping->host;
120 loff_t i_size = i_size_read(inode); 120 loff_t i_size = i_size_read(inode);
121 pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT; 121 pgoff_t end_index = i_size >> PAGE_SHIFT;
122 unsigned offset; 122 unsigned offset;
123 u64 bix; 123 u64 bix;
124 level_t level; 124 level_t level;
@@ -142,7 +142,7 @@ static int logfs_writepage(struct page *page, struct writeback_control *wbc)
142 return __logfs_writepage(page); 142 return __logfs_writepage(page);
143 143
144 /* Is the page fully outside i_size? (truncate in progress) */ 144 /* Is the page fully outside i_size? (truncate in progress) */
145 offset = i_size & (PAGE_CACHE_SIZE-1); 145 offset = i_size & (PAGE_SIZE-1);
146 if (bix > end_index || offset == 0) { 146 if (bix > end_index || offset == 0) {
147 unlock_page(page); 147 unlock_page(page);
148 return 0; /* don't care */ 148 return 0; /* don't care */
@@ -155,7 +155,7 @@ static int logfs_writepage(struct page *page, struct writeback_control *wbc)
155 * the page size, the remaining memory is zeroed when mapped, and 155 * the page size, the remaining memory is zeroed when mapped, and
156 * writes to that region are not written out to the file." 156 * writes to that region are not written out to the file."
157 */ 157 */
158 zero_user_segment(page, offset, PAGE_CACHE_SIZE); 158 zero_user_segment(page, offset, PAGE_SIZE);
159 return __logfs_writepage(page); 159 return __logfs_writepage(page);
160} 160}
161 161