linux/fs/btrfs
Hisashi Hifumi 4eedeb75e7 Btrfs: pin buffers during write_dev_supers
write_dev_supers is called in sequence.  First is it called with wait == 0,
which starts IO on all of the super blocks for a given device.  Then it is
called with wait == 1 to make sure they all reach the disk.

It doesn't currently pin the buffers between the two calls, and it also
assumes the buffers won't go away between the two calls, leading to
an oops if the VM manages to free the buffers in the middle of the sync.

This fixes that assumption and updates the code to return an error if things
are not up to date when the wait == 1 run is done.

Signed-off-by: Hisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2009-06-10 16:49:25 -04:00
..
acl.c Fix btrfs when ACLs are configured out 2009-06-10 11:36:43 -04:00
async-thread.c
async-thread.h
btrfs_inode.h Btrfs: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION 2009-06-10 11:29:52 -04:00
compat.h
compression.c Btrfs: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION 2009-06-10 11:29:52 -04:00
compression.h
ctree.c Btrfs: balance btree more often 2009-06-10 11:29:47 -04:00
ctree.h Fix btrfs when ACLs are configured out 2009-06-10 11:36:43 -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
disk-io.c Btrfs: pin buffers during write_dev_supers 2009-06-10 16:49:25 -04:00
disk-io.h
export.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
export.h
extent_io.c
extent_io.h
extent_map.c
extent_map.h
extent-tree.c Btrfs: remove crc32c.h and use libcrc32c directly. 2009-06-10 11:29:53 -04:00
file-item.c
file.c Btrfs: fdatasync should skip metadata writeout 2009-06-10 11:29:53 -04:00
free-space-cache.c Btrfs: add mount -o ssd_spread to spread allocations out 2009-06-10 11:29:52 -04:00
free-space-cache.h Btrfs: add mount -o ssd_spread to spread allocations out 2009-06-10 11:29:52 -04:00
hash.h Btrfs: remove crc32c.h and use libcrc32c directly. 2009-06-10 11:29:53 -04:00
inode-item.c
inode-map.c
inode.c Btrfs: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION 2009-06-10 11:29:52 -04:00
ioctl.c Btrfs: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION 2009-06-10 11:29:52 -04:00
ioctl.h
Kconfig
locking.c
locking.h
Makefile Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
ordered-data.c
ordered-data.h
orphan.c
print-tree.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
print-tree.h
ref-cache.c
ref-cache.h
relocation.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
root-tree.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
struct-funcs.c
super.c Btrfs: autodetect SSD devices 2009-06-10 11:29:52 -04:00
sysfs.c
transaction.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
transaction.h Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
tree-defrag.c
tree-log.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
tree-log.h
version.h
version.sh
volumes.c Btrfs: avoid races between super writeout and device list updates 2009-06-10 15:17:02 -04:00
volumes.h Btrfs: avoid races between super writeout and device list updates 2009-06-10 15:17:02 -04:00
xattr.c
xattr.h
zlib.c