diff options
Diffstat (limited to 'fs/logfs/file.c')
-rw-r--r-- | fs/logfs/file.c | 26 |
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 | } |
76 | out: | 76 | out: |
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 | ||