remarkable-linux/fs/btrfs
Chris Mason 11ef160fda Btrfs: fix releasepage to avoid unlocking extents we haven't locked
During releasepage, we try to drop any extent_state structs for the
bye offsets of the page we're releaseing.  But the code was incorrectly
telling clear_extent_bit to delete the state struct unconditionallly.

Normally this would be fine because we have the page locked, but other
parts of btrfs will lock down an entire extent, the most common place
being IO completion.

releasepage was deleting the extent state without first locking the extent,
which may result in removing a state struct that another process had
locked down.  The fix here is to leave the NODATASUM and EXTENT_LOCKED
bits alone in releasepage.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2009-09-23 20:30:53 -04:00
..
acl.c helpers for acl caching + switch to those 2009-06-24 08:17:07 -04:00
async-thread.c Btrfs: Fix async thread shutdown race 2009-09-15 20:20:17 -04:00
async-thread.h Btrfs: keep irqs on more often in the worker threads 2009-09-11 13:31:04 -04:00
btrfs_inode.h Btrfs: change how subvolumes are organized 2009-09-21 15:56:00 -04:00
compat.h Btrfs: drop remaining LINUX_KERNEL_VERSION checks and compat code 2009-01-06 09:38:55 -05:00
compression.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2009-09-11 19:07:25 -04:00
compression.h Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
ctree.c Btrfs: Avoid delayed reference update looping 2009-07-24 12:42:46 -04:00
ctree.h Btrfs: account for space used by the super mirrors 2009-09-21 19:23:50 -04:00
delayed-ref.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
delayed-ref.h Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
dir-item.c Btrfs: change how subvolumes are organized 2009-09-21 15:56:00 -04:00
disk-io.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
disk-io.h Btrfs: leave btree locks spinning more often 2009-03-24 16:14:28 -04:00
export.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
export.h NFS support for btrfs - v3 2008-09-25 11:04:06 -04:00
extent-tree.c Btrfs: fix early enospc during balancing 2009-09-22 14:48:44 -04:00
extent_io.c Btrfs: fix releasepage to avoid unlocking extents we haven't locked 2009-09-23 20:30:53 -04:00
extent_io.h Btrfs: Use PagePrivate2 to track pages in the data=ordered code. 2009-09-11 13:31:07 -04:00
extent_map.c Btrfs: search for an allocation hint while filling file COW 2009-09-18 16:08:52 -04:00
extent_map.h Btrfs: search for an allocation hint while filling file COW 2009-09-18 16:08:52 -04:00
file-item.c Btrfs: leave btree locks spinning more often 2009-03-24 16:14:28 -04:00
file.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2009-09-11 19:07:25 -04:00
free-space-cache.c Btrfs: fix extent entry threshold calculation 2009-09-21 19:23:50 -04:00
free-space-cache.h Btrfs: use hybrid extents+bitmap rb tree for free space 2009-07-24 09:23:30 -04:00
hash.h Btrfs: remove crc32c.h and use libcrc32c directly. 2009-06-10 11:29:53 -04:00
inode-item.c Btrfs: do not reuse objectid of deleted snapshot/subvol 2009-09-21 15:56:00 -04:00
inode-map.c Btrfs: do not reuse objectid of deleted snapshot/subvol 2009-09-21 15:56:00 -04:00
inode.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
ioctl.c Btrfs: fix arithmetic error in clone ioctl 2009-09-21 16:00:27 -04:00
ioctl.h Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
Kconfig Btrfs: make btrfs acls selectable 2009-02-04 09:28:28 -05:00
locking.c Btrfs: fix typos in comments 2009-04-02 16:46:06 -04:00
locking.h Btrfs: fix spinlock assertions on UP systems 2009-03-09 11:45:38 -04:00
Makefile Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
ordered-data.c Btrfs: Use PagePrivate2 to track pages in the data=ordered code. 2009-09-11 13:31:07 -04:00
ordered-data.h Btrfs: Use PagePrivate2 to track pages in the data=ordered code. 2009-09-11 13:31:07 -04:00
orphan.c Btrfs: change how subvolumes are organized 2009-09-21 15:56:00 -04:00
print-tree.c Btrfs: remove of redundant btrfs_header_level 2009-07-22 16:52:13 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
ref-cache.c Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks 2009-02-04 09:27:02 -05:00
ref-cache.h Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks 2009-02-04 09:27:02 -05:00
relocation.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
root-tree.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
struct-funcs.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
super.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
sysfs.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
transaction.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
transaction.h Btrfs: be more polite in the async caching threads 2009-07-30 10:14:46 -04:00
tree-defrag.c Btrfs: do extent allocation and reference count updates in the background 2009-03-24 16:14:25 -04:00
tree-log.c Btrfs: add snapshot/subvolume destroy ioctl 2009-09-21 16:00:26 -04:00
tree-log.h Btrfs: tree logging unlink/rename fixes 2009-03-24 16:14:52 -04:00
version.h Update Btrfs files for in-kernel usage 2008-09-25 15:41:59 -04:00
version.sh Btrfs: Fixes for 2.6.28-rc API changes 2008-11-19 21:17:22 -05:00
volumes.c Btrfs: make balance code choose more wisely when relocating 2009-09-21 19:23:48 -04:00
volumes.h Btrfs: make balance code choose more wisely when relocating 2009-09-21 19:23:48 -04:00
xattr.c Btrfs: selinux support 2009-02-04 09:29:13 -05:00
xattr.h Btrfs: selinux support 2009-02-04 09:29:13 -05:00
zlib.c Btrfs: correct error-handling zlib error handling 2009-08-07 13:51:33 -04:00