| .. | .. |
|---|
| 47 | 47 | size_t n = min_t(size_t, count, |
|---|
| 48 | 48 | PAGE_SIZE - offset_in_page(pos)); |
|---|
| 49 | 49 | struct page *page; |
|---|
| 50 | | - void *addr; |
|---|
| 51 | 50 | |
|---|
| 52 | 51 | page = read_mapping_page(inode->i_mapping, pos >> PAGE_SHIFT, |
|---|
| 53 | 52 | NULL); |
|---|
| 54 | 53 | if (IS_ERR(page)) |
|---|
| 55 | 54 | return PTR_ERR(page); |
|---|
| 56 | 55 | |
|---|
| 57 | | - addr = kmap_atomic(page); |
|---|
| 58 | | - memcpy(buf, addr + offset_in_page(pos), n); |
|---|
| 59 | | - kunmap_atomic(addr); |
|---|
| 56 | + memcpy_from_page(buf, page, offset_in_page(pos), n); |
|---|
| 60 | 57 | |
|---|
| 61 | 58 | put_page(page); |
|---|
| 62 | 59 | |
|---|
| .. | .. |
|---|
| 81 | 78 | size_t n = min_t(size_t, count, |
|---|
| 82 | 79 | PAGE_SIZE - offset_in_page(pos)); |
|---|
| 83 | 80 | struct page *page; |
|---|
| 84 | | - void *fsdata; |
|---|
| 85 | | - void *addr; |
|---|
| 81 | + void *fsdata = NULL; |
|---|
| 86 | 82 | int res; |
|---|
| 87 | 83 | |
|---|
| 88 | 84 | res = pagecache_write_begin(NULL, inode->i_mapping, pos, n, 0, |
|---|
| .. | .. |
|---|
| 90 | 86 | if (res) |
|---|
| 91 | 87 | return res; |
|---|
| 92 | 88 | |
|---|
| 93 | | - addr = kmap_atomic(page); |
|---|
| 94 | | - memcpy(addr + offset_in_page(pos), buf, n); |
|---|
| 95 | | - kunmap_atomic(addr); |
|---|
| 89 | + memcpy_to_page(page, offset_in_page(pos), buf, n); |
|---|
| 96 | 90 | |
|---|
| 97 | 91 | res = pagecache_write_end(NULL, inode->i_mapping, pos, n, n, |
|---|
| 98 | 92 | page, fsdata); |
|---|