projects
/
GitHub
/
mt8127
/
android_kernel_alcatel_ttab.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'msm-move-gpio' of git://codeaurora.org/quic/kernel/davidb/linux-msm...
[GitHub/mt8127/android_kernel_alcatel_ttab.git]
/
fs
/
btrfs
/
file.c
diff --git
a/fs/btrfs/file.c
b/fs/btrfs/file.c
index 59cbdb120ad0917a001dd9c97d5a17999e6ce59e..a35e51c9f235559c5c9a0f5f5ddea267e6c14a40 100644
(file)
--- a/
fs/btrfs/file.c
+++ b/
fs/btrfs/file.c
@@
-1081,7
+1081,8
@@
static noinline int prepare_pages(struct btrfs_root *root, struct file *file,
again:
for (i = 0; i < num_pages; i++) {
again:
for (i = 0; i < num_pages; i++) {
- pages[i] = grab_cache_page(inode->i_mapping, index + i);
+ pages[i] = find_or_create_page(inode->i_mapping, index + i,
+ GFP_NOFS);
if (!pages[i]) {
faili = i - 1;
err = -ENOMEM;
if (!pages[i]) {
faili = i - 1;
err = -ENOMEM;
@@
-1238,9
+1239,11
@@
static noinline ssize_t __btrfs_buffered_write(struct file *file,
* managed to copy.
*/
if (num_pages > dirty_pages) {
* managed to copy.
*/
if (num_pages > dirty_pages) {
- if (copied > 0)
- atomic_inc(
- &BTRFS_I(inode)->outstanding_extents);
+ if (copied > 0) {
+ spin_lock(&BTRFS_I(inode)->lock);
+ BTRFS_I(inode)->outstanding_extents++;
+ spin_unlock(&BTRFS_I(inode)->lock);
+ }
btrfs_delalloc_release_space(inode,
(num_pages - dirty_pages) <<
PAGE_CACHE_SHIFT);
btrfs_delalloc_release_space(inode,
(num_pages - dirty_pages) <<
PAGE_CACHE_SHIFT);