git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs...
[pandora-kernel.git]
/
fs
/
btrfs
/
ioctl.c
diff --git
a/fs/btrfs/ioctl.c
b/fs/btrfs/ioctl.c
index
6225433
..
0b980af
100644
(file)
--- a/
fs/btrfs/ioctl.c
+++ b/
fs/btrfs/ioctl.c
@@
-859,8
+859,8
@@
again:
/* step one, lock all the pages */
for (i = 0; i < num_pages; i++) {
struct page *page;
/* step one, lock all the pages */
for (i = 0; i < num_pages; i++) {
struct page *page;
- page =
grab_cach
e_page(inode->i_mapping,
- start_index + i);
+ page =
find_or_creat
e_page(inode->i_mapping,
+ start_index + i
, GFP_NOFS
);
if (!page)
break;
if (!page)
break;
@@
-930,7
+930,9
@@
again:
GFP_NOFS);
if (i_done != num_pages) {
GFP_NOFS);
if (i_done != num_pages) {
- atomic_inc(&BTRFS_I(inode)->outstanding_extents);
+ spin_lock(&BTRFS_I(inode)->lock);
+ BTRFS_I(inode)->outstanding_extents++;
+ spin_unlock(&BTRFS_I(inode)->lock);
btrfs_delalloc_release_space(inode,
(num_pages - i_done) << PAGE_CACHE_SHIFT);
}
btrfs_delalloc_release_space(inode,
(num_pages - i_done) << PAGE_CACHE_SHIFT);
}