Dave Chinner
6ce377afd1
xfs: fix reading of wrapped log data
...
Commit 4439647 ("xfs: reset buffer pointers before freeing them") in
3.0-rc1 introduced a regression when recovering log buffers that
wrapped around the end of log. The second part of the log buffer at
the start of the physical log was being read into the header buffer
rather than the data buffer, and hence recovery was seeing garbage
in the data buffer when it got to the region of the log buffer that
was incorrectly read.
Cc: <[email protected] > # 3.0.x, 3.2.x, 3.4.x 3.6.x
Reported-by: Torsten Kaiser <[email protected] >
Signed-off-by: Dave Chinner <[email protected] >
Reviewed-by: Christoph Hellwig <[email protected] >
Reviewed-by: Mark Tinguely <[email protected] >
Signed-off-by: Ben Myers <[email protected] >
2012-11-08 11:10:51 -06:00
..
Kconfig
kmem.c
xfs: switch to proper __bitwise type for KM_... flags
2012-05-29 23:28:32 -04:00
kmem.h
xfs: switch to proper __bitwise type for KM_... flags
2012-05-29 23:28:32 -04:00
Makefile
xfs: move xfs_do_force_shutdown() and kill xfs_rw.c
2012-05-14 16:20:59 -05:00
mrlock.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
time.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
uuid.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
uuid.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs.h
xfs: don't expect xfs headers to be in subdirectories
2011-08-12 13:57:55 -05:00
xfs_acl.c
userns: Pass a userns parameter into posix_acl_to_xattr and posix_acl_from_xattr
2012-09-18 01:01:35 -07:00
xfs_acl.h
xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set
2011-08-01 02:35:04 -04:00
xfs_ag.h
xfs: move busy extent handling to it's own file
2012-05-14 16:20:55 -05:00
xfs_alloc.c
xfs: move allocation stack switch up to xfs_bmapi_allocate
2012-11-08 11:08:46 -06:00
xfs_alloc.h
xfs: move allocation stack switch up to xfs_bmapi_allocate
2012-11-08 11:08:46 -06:00
xfs_alloc_btree.c
xfs: invalidate allocbt blocks moved to the free list
2012-11-08 11:09:44 -06:00
xfs_alloc_btree.h
xfs: struct xfs_buf_log_format isn't variable sized.
2012-07-01 14:50:04 -05:00
xfs_aops.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-08-01 10:26:23 -07:00
xfs_aops.h
Prefix IO_XX flags with XFS_IO_XX to avoid namespace colision.
2012-07-22 11:00:55 -05:00
xfs_attr.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_attr.h
xfs_attr_leaf.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_attr_leaf.h
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_attr_sf.h
xfs_bit.c
xfs_bit.h
xfs_bmap.c
xfs: move allocation stack switch up to xfs_bmapi_allocate
2012-11-08 11:08:46 -06:00
xfs_bmap.h
xfs: move allocation stack switch up to xfs_bmapi_allocate
2012-11-08 11:08:46 -06:00
xfs_bmap_btree.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_bmap_btree.h
xfs_btree.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_btree.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_buf.c
xfs: fix race while discarding buffers [V4]
2012-08-29 15:01:11 -05:00
xfs_buf.h
xfs: fix race while discarding buffers [V4]
2012-08-29 15:01:11 -05:00
xfs_buf_item.c
xfs: fix buffer shudown reference count mismatch
2012-11-08 11:10:35 -06:00
xfs_buf_item.h
xfs: support discontiguous buffers in the xfs_buf_log_item
2012-07-01 14:50:06 -05:00
xfs_da_btree.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_da_btree.h
xfs: fix comment typo of struct xfs_da_blkinfo.
2012-07-22 10:34:42 -05:00
xfs_dfrag.c
switch simple cases of fget_light to fdget
2012-09-26 22:20:08 -04:00
xfs_dfrag.h
xfs_dinode.h
xfs: fix typo in comment of xfs_dinode_t.
2012-06-14 12:28:26 -05:00
xfs_dir2.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_dir2.h
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_dir2_block.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_dir2_data.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_dir2_format.h
xfs: cleanup struct xfs_dir2_free
2011-07-13 13:43:48 +02:00
xfs_dir2_leaf.c
xfs: factor buffer reading from xfs_dir2_leaf_getdents
2012-07-01 14:50:08 -05:00
xfs_dir2_node.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_dir2_priv.h
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_dir2_sf.c
xfs: remove struct xfs_dabuf and infrastructure
2012-07-01 14:50:07 -05:00
xfs_discard.c
xfs: check for possible overflow in xfs_ioc_trim
2012-08-23 14:48:44 -05:00
xfs_discard.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_dquot.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_dquot.h
xfs: on-stack delayed write buffer lists
2012-05-14 16:20:31 -05:00
xfs_dquot_item.c
xfs: clean up xfs_bit.h includes
2012-05-14 16:21:00 -05:00
xfs_dquot_item.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_error.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_error.h
xfs: kill support/debug.[ch]
2011-03-07 10:09:35 +11:00
xfs_export.c
tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
2012-10-09 23:33:55 -04:00
xfs_export.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_extent_busy.c
xfs: make xfs_extent_busy_trim not static
2012-05-14 16:21:04 -05:00
xfs_extent_busy.h
xfs: make xfs_extent_busy_trim not static
2012-05-14 16:21:04 -05:00
xfs_extfree_item.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_extfree_item.h
xfs_file.c
mm: kill vma flag VM_CAN_NONLINEAR
2012-10-09 16:22:17 +09:00
xfs_filestream.c
xfs: rename allocation range fields in struct xfs_bmalloca
2011-10-11 21:15:06 -05:00
xfs_filestream.h
xfs_fs.h
xfs: consolidate & clarify mount sanity checks
2011-07-08 11:32:51 -05:00
xfs_fs_subr.c
xfs: remove the i_size field in struct xfs_inode
2012-01-17 15:08:53 -06:00
xfs_fsops.c
xfs: growfs: don't read garbage for new secondary superblocks
2012-11-08 11:08:57 -06:00
xfs_fsops.h
xfs: ensure log covering transactions are synchronous
2011-01-11 20:28:17 -06:00
xfs_globals.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ialloc.c
xfs: zero allocation_args on the kernel stack
2012-11-08 11:08:10 -06:00
xfs_ialloc.h
xfs: remove the alloc_done argument to xfs_dialloc
2012-07-29 16:00:31 -05:00
xfs_ialloc_btree.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_ialloc_btree.h
xfs_iget.c
xfs: remove iolock lock classes
2012-07-29 16:23:51 -05:00
xfs_inode.c
xfs: don't vmap inode cluster buffers during free
2012-11-08 11:10:18 -06:00
xfs_inode.h
xfs: remove iolock lock classes
2012-07-29 16:23:51 -05:00
xfs_inode_item.c
xfs: check for stale inode before acquiring iflock on push
2012-06-21 14:20:06 -05:00
xfs_inode_item.h
xfs: pass shutdown method into xfs_trans_ail_delete_bulk
2012-05-14 16:20:33 -05:00
xfs_inum.h
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_ioctl.c
xfs: silence uninitialised f.file warning.
2012-11-08 11:09:17 -06:00
xfs_ioctl.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ioctl32.c
xfs: Convert to new freezing code
2012-07-31 09:45:48 +04:00
xfs_ioctl32.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_iomap.c
xfs: introduce XFS_BMAPI_STACK_SWITCH
2012-11-08 11:08:27 -06:00
xfs_iomap.h
xfs_iops.c
xfs: update for 3.6-rc1
2012-07-30 13:37:53 -07:00
xfs_iops.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_itable.c
xfs: merge xfs_itobp into xfs_imap_to_bp
2012-07-22 10:46:56 -05:00
xfs_itable.h
xfs_linux.h
xfs: revert to using a kthread for AIL pushing
2011-10-11 11:02:49 -05:00
xfs_log.c
xfs: only update the last_sync_lsn when a transaction completes
2012-11-08 11:07:38 -06:00
xfs_log.h
xfs: allow assigning the tail lsn with the AIL lock held
2012-05-14 16:20:26 -05:00
xfs_log_cil.c
xfs: rename log structure to xlog
2012-06-21 14:21:11 -05:00
xfs_log_priv.h
xfs: remove xlog_t typedef
2012-06-21 14:22:27 -05:00
xfs_log_recover.c
xfs: fix reading of wrapped log data
2012-11-08 11:10:51 -06:00
xfs_log_recover.h
xfs_message.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_message.h
treewide: use __printf not __attribute__((format(printf,...)))
2011-10-31 17:30:54 -07:00
xfs_mount.c
xfs: reduce code duplication handling inode32/64 options
2012-09-26 15:56:33 -05:00
xfs_mount.h
xfs: kill struct declarations in xfs_mount.h
2012-08-16 13:29:35 -05:00
xfs_mru_cache.c
xfs: convert to alloc_workqueue()
2011-02-01 11:42:43 +01:00
xfs_mru_cache.h
xfs_qm.c
xfs: make largest supported offset less shouty
2012-06-14 12:28:24 -05:00
xfs_qm.h
xfs: remove the global xfs_Gqm structure
2012-03-14 12:06:32 -05:00
xfs_qm_bhv.c
xfs: clean up xfs_bit.h includes
2012-05-14 16:21:00 -05:00
xfs_qm_syscalls.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_quota.h
Define new macro XFS_ALL_QUOTA_ACTIVE and simply some usage
2012-02-03 11:32:20 -06:00
xfs_quota_priv.h
xfs: use per-filesystem radix trees for dquot lookup
2012-03-14 11:09:06 -05:00
xfs_quotaops.c
userns: Convert qutoactl
2012-09-18 01:01:39 -07:00
xfs_rename.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_rtalloc.c
xfs: fix uninitialised variable in xfs_rtbuf_get()
2012-08-23 14:48:16 -05:00
xfs_rtalloc.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_sb.h
xfs: kill the unused XFS_BB_FSB_OFFSET macro
2012-02-02 17:08:04 -06:00
xfs_stats.c
xfs: use common code for quota statistics
2012-03-14 11:09:06 -05:00
xfs_stats.h
xfs: use common code for quota statistics
2012-03-14 11:09:06 -05:00
xfs_super.c
xfs: update for 3.7-rc1
2012-10-02 20:42:58 -07:00
xfs_super.h
xfs: reduce code duplication handling inode32/64 options
2012-09-26 15:56:33 -05:00
xfs_sync.c
workqueue: deprecate flush[_delayed]_work_sync()
2012-08-20 14:51:24 -07:00
xfs_sync.h
xfs: log timestamp updates
2012-03-13 17:01:15 -05:00
xfs_sysctl.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_sysctl.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_trace.c
xfs: clean up xfs_bit.h includes
2012-05-14 16:21:00 -05:00
xfs_trace.h
xfs: kill struct declarations in xfs_mount.h
2012-08-16 13:29:35 -05:00
xfs_trans.c
xfs: Convert to new freezing code
2012-07-31 09:45:48 +04:00
xfs_trans.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-08-01 10:26:23 -07:00
xfs_trans_ail.c
xfs: re-enable xfsaild idle mode and fix associated races
2012-07-29 16:27:57 -05:00
xfs_trans_buf.c
xfs: add discontiguous buffer support to transactions
2012-07-01 14:50:06 -05:00
xfs_trans_dquot.c
userns: Convert quota netlink aka quota_send_warning
2012-09-18 01:01:40 -07:00
xfs_trans_extfree.c
xfs: move xfsagino_t to xfs_types.h
2012-05-14 16:20:54 -05:00
xfs_trans_inode.c
xfs: clean up xfs_bit.h includes
2012-05-14 16:21:00 -05:00
xfs_trans_priv.h
xfs: re-enable xfsaild idle mode and fix associated races
2012-07-29 16:27:57 -05:00
xfs_trans_space.h
xfs_types.h
xfs: struct xfs_buf_log_format isn't variable sized.
2012-07-01 14:50:04 -05:00
xfs_utils.c
xfs: remove the alloc_done argument to xfs_dialloc
2012-07-29 16:00:31 -05:00
xfs_utils.h
xfs: propagate umode_t
2012-01-03 22:55:00 -05:00
xfs_vnode.h
xfs: remove remaining scraps of struct xfs_iomap
2012-03-15 13:40:16 -05:00
xfs_vnodeops.c
xfs: avoid the iolock in xfs_free_eofblocks for evicted inodes
2012-07-29 16:22:20 -05:00
xfs_vnodeops.h
xfs: remove remaining scraps of struct xfs_iomap
2012-03-15 13:40:16 -05:00
xfs_xattr.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00