Up to [Development] / xfs-linux-nodel / linux-2.6
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.24 / (download) - annotate - [select for diffs], Thu Oct 23 15:01:39 2008 UTC (8 years, 11 months ago) by pleckie.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.23: +18 -57
lines
Diff to previous 1.23 (colored)
avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Version 4: o don't reference liinux inode untiil after igrab() succeeds Version 3: o converted unlock/rele to an xfs_iput() call. Version 2: o change igrab logic to be more linear o remove initial reclaimable inode check now that we are using igrab() failure to find reclaimable inodes o assert that igrab failure occurs only on reclaimable inodes o clean up inode locking - only grab the iolock if we are doing a SYNC_DELWRI call and we have a dirty inode. Merge of xfs-linux-melb:xfs-kern:32391a by kenmcd. avoid all reclaimable inodes in xfs_sync_inodes_ag
Revision 1.23 / (download) - annotate - [select for diffs], Wed Oct 15 15:36:41 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.22: +22 -4
lines
Diff to previous 1.22 (colored)
Prevent looping in xfs_sync_inodes_ag If the last block of the AG has inodes in it and the AG is an exactly power-of-2 size then the last inode in the AG points to the last block in the AG. If we try to find the next inode in the AG by adding one to the inode number, we increment the inode number past the size of the AG. The result is that the macro XFS_INO_TO_AGINO() will strip the AG portion of the inode number and return an inode number of zero. That is, instead of terminating the lookup loop because we hit the inode number went outside the valid range for the AG, the search index returns to zero and we start traversing the radix tree from the start again. This results in an endless loop in xfs_sync_inodes_ag(). Fix it be detecting if the new search index decreases as a result of incrementing the current inode number. That indicate an overflow and hence that we have finished processing the AG so we can terminate the loop. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32335a by kenmcd. Prevent looping in xfs_sync_inodes_ag
Revision 1.22 / (download) - annotate - [select for diffs], Wed Oct 15 15:35:50 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.21: +6 -0
lines
Diff to previous 1.21 (colored)
kill deleted inodes list Now that the deleted inodes list is unused, kill it. This also removes the i_reclaim list head from the xfs_inode, shrinking it by two pointers. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32334a by kenmcd. kill deleted inodes list
Revision 1.21 / (download) - annotate - [select for diffs], Wed Oct 15 15:34:55 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.20: +71 -10
lines
Diff to previous 1.20 (colored)
use the inode radix tree for reclaiming inodes Use the reclaim tag to walk the radix tree and find the inodes under reclaim. This was the only user of the deleted inode list. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32333a by kenmcd. use the inode radix tree for reclaiming inodes
Revision 1.20 / (download) - annotate - [select for diffs], Wed Oct 15 15:34:05 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.19: +41 -0
lines
Diff to previous 1.19 (colored)
mark inodes for reclaim via a tag in the inode radix tree Prepare for removing the deleted inode list by marking inodes for reclaim in the inode radix trees so that we can use the radix trees to find reclaimable inodes. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32331a by kenmcd. mark inodes for reclaim via a tag in the inode radix tree
Revision 1.19 / (download) - annotate - [select for diffs], Wed Oct 15 15:33:13 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.18: +5 -5
lines
Diff to previous 1.18 (colored)
rename inode reclaim functions The function names xfs_finish_reclaim and xfs_finish_reclaim_all are not very descriptive of what they are reclaiming. Rename to xfs_reclaim_inode[s] to match the xfs_sync_inodes() function. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32330a by kenmcd. rename inode reclaim functions
Revision 1.18 / (download) - annotate - [select for diffs], Wed Oct 15 15:32:20 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.17: +91 -0
lines
Diff to previous 1.17 (colored)
move inode reclaim functions to xfs_sync.c Background inode reclaim is run by the xfssyncd. Move the reclaim worker functions to be close to the sync code as the are very similar in structure and are both run from the same background thread. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32329a by kenmcd. move inode reclaim functions to xfs_sync.c
Revision 1.17 / (download) - annotate - [select for diffs], Mon Oct 13 15:14:06 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.16: +55 -0
lines
Diff to previous 1.16 (colored)
Move remaining quiesce code. With all the other filesystem sync code it in xfs_sync.c including the data quiesce code, it makes sense to move the remaining quiesce code to the same place. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32312a by kenmcd. Move remaining quiesce code.
Revision 1.16 / (download) - annotate - [select for diffs], Mon Oct 13 15:13:12 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.15: +15 -117
lines
Diff to previous 1.15 (colored)
Kill xfs_sync() There are no more callers to xfs_sync() now, so remove the function altogther. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32311a by kenmcd. Kill xfs_sync()
Revision 1.15 / (download) - annotate - [select for diffs], Mon Oct 13 15:12:05 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.14: +2 -29
lines
Diff to previous 1.14 (colored)
Kill SYNC_CLOSE SYNC_CLOSE is only ever used and checked in conjunction with SYNC_WAIT, and this only done in one spot. The only thing this does is make XFS_bflush() calls to the data buftargs. This will happen very shortly afterwards the xfs_sync() call anyway in the unmount path via the xfs_close_devices(), so this code is redundant and can be removed. That only user of SYNC_CLOSE is now gone, so kill the flag completely. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32310a by kenmcd. Kill SYNC_CLOSE
Revision 1.14 / (download) - annotate - [select for diffs], Mon Oct 13 15:10:48 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.13: +41 -1
lines
Diff to previous 1.13 (colored)
make SYNC_DELWRI no longer use xfs_sync Continue to de-multiplex xfs_sync be replacing all SYNC_DELWRI callers with direct calls functions that do the work. Isolate the data quiesce case to a function in xfs_sync.c. Isolate the FSDATA case with explicit calls to xfs_sync_fsdata(). Version 2: o Push delwri related log forces into xfs_sync_inodes(). Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32309a by kenmcd. make SYNC_DELWRI no longer use xfs_sync
Revision 1.13 / (download) - annotate - [select for diffs], Mon Oct 13 15:09:55 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.12: +11 -12
lines
Diff to previous 1.12 (colored)
make SYNC_ATTR no longer use xfs_sync Continue to de-multiplex xfs_sync be replacing all SYNC_ATTR callers with direct calls xfs_sync_inodes(). Add an assert into xfs_sync() to ensure we caught all the SYNC_ATTR callers. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32308a by kenmcd. make SYNC_ATTR no longer use xfs_sync
Revision 1.12 / (download) - annotate - [select for diffs], Mon Oct 13 15:09:05 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.11: +14 -2
lines
Diff to previous 1.11 (colored)
xfssyncd: don't call xfs_sync Start de-multiplexing xfs_sync() by making xfs_sync_worker() call the specific sync functions it needs. This is only a small, unique subset of the entire xfs_sync() code so is easier to follow. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32307a by kenmcd. xfssyncd: don't call xfs_sync
Revision 1.11 / (download) - annotate - [select for diffs], Mon Oct 13 15:08:14 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.10: +62 -79
lines
Diff to previous 1.10 (colored)
kill xfs_syncsub Now that the only caller is xfs_sync(), merge the two together as it makes no sense to keep them separate. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32306a by kenmcd. kill xfs_syncsub
Revision 1.10 / (download) - annotate - [select for diffs], Mon Oct 13 15:07:23 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.9: +7 -14
lines
Diff to previous 1.9 (colored)
use xfs_sync_inodes rather than xfs_syncsub Kill the unused arg in xfs_syncsub() and xfs_sync_inodes(). For callers of xfs_syncsub() that only want to flush inodes, replace xfs_syncsub() with direct calls to xfs_sync_inodes() as that is all that is being done with the specific flags being passed in. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32305a by kenmcd. use xfs_sync_inodes rather than xfs_syncsub
Revision 1.9 / (download) - annotate - [select for diffs], Mon Oct 13 15:06:28 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.8: +26 -27
lines
Diff to previous 1.8 (colored)
Use struct inodes instead of vnodes to kill vn_grab With the sync code relocated to the linux-2.6 directory we can use struct inodes directly. If we do the same thing for the quota release code, we can remove vn_grab altogether. While here, convert the VN_BAD() checks to is_bad_inode() so we can remove vnodes entirely from this code. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32304a by kenmcd. Use struct inodes instead of vnodes to kill vn_grab
Revision 1.8 / (download) - annotate - [select for diffs], Mon Oct 13 15:05:36 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.7: +93 -69
lines
Diff to previous 1.7 (colored)
split out two helpers from xfs_syncsub Split out two helpers from xfs_syncsub for the dummy log commit and the superblock writeout. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32303a by kenmcd. split out two helpers from xfs_syncsub
Revision 1.7 / (download) - annotate - [select for diffs], Fri Oct 10 15:19:49 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.6: +101 -260
lines
Diff to previous 1.6 (colored)
Use the inode tree for finding dirty inodes Update xfs_sync_inodes to walk the inode radix tree cache to find dirty inodes. This removes a huge bunch of nasty, messy code for traversing the mount inode list safely and removes another user of the mount inode list. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32290a by kenmcd. Use the inode tree for finding dirty inodes
Revision 1.6 / (download) - annotate - [select for diffs], Fri Oct 10 05:36:06 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.5: +260 -101
lines
Diff to previous 1.5 (colored)
Undoes mod: xfs-linux-melb:xfs-kern:32286a Reverting mod xfs-linux-melb:xfs-kern:32286a which got checked in with wrong take message. Merge of xfs-linux-melb:xfs-kern:32288a by kenmcd.
Revision 1.5 / (download) - annotate - [select for diffs], Fri Oct 10 05:34:25 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.4: +101 -260
lines
Diff to previous 1.4 (colored)
Traverse inode trees when releasing dquots Make releasing all inode dquots traverse the per-ag inode radix trees rather than the mount inode list. This removes another user of the mount inode list. Version 3 o fix comment relating to avoiding trying to release the quota inodes and those in reclaim. Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32286a by kenmcd. Traverse inode trees when releasing dquots
Revision 1.4 / (download) - annotate - [select for diffs], Fri Oct 10 05:33:34 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.3: +0 -0
lines
Diff to previous 1.3 (colored)
Use the inode tree for finding dirty inodes Update xfs_sync_inodes to walk the inode radix tree cache to find dirty inodes. This removes a huge bunch of nasty, messy code for traversing the mount inode list safely and removes another user of the mount inode list. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32285a by kenmcd. Use the inode tree for finding dirty inodes
Revision 1.3 / (download) - annotate - [select for diffs], Fri Oct 10 05:32:41 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.2: +1 -1
lines
Diff to previous 1.2 (colored)
Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() xfs_iflush_all() walks the m_inodes list to find inodes that need reclaiming. We already have such a list - the m_del_inodes list. Replace xfs_iflush_all() with a call to xfs_finish_reclaim_all() and clean up xfs_finish_reclaim_all() to handle the different flush modes now needed. Originally based on a patch from Christoph Hellwig. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o revert xfs_syncsub() inode reclaim behaviour back to original code o xfs_quiesce_fs() should use XFS_IFLUSH_DELWRI_ELSE_ASYNC, not XFS_IFLUSH_ASYNC, to prevent change of behaviour. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32284a by kenmcd. Remove xfs_iflush_all and clean up xfs_finish_reclaim_all()
Revision 1.2 / (download) - annotate - [select for diffs], Fri Oct 10 05:31:47 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.1: +163 -0
lines
Diff to previous 1.1 (colored)
move xfssyncd code to xfs_sync.c Move all the xfssyncd code to the new xfs_sync.c file. This places it closer to the actual code that it interacts with, rather than just being associated with high level VFS code. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32283a by kenmcd. move xfssyncd code to xfs_sync.c
Revision 1.1 / (download) - annotate - [select for diffs], Fri Oct 10 05:30:53 2008 UTC (9 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
move sync code to its own file The sync code in XFS is spread around several files. While it used to make sense to have such a distribution, the code is about to be cleaned up and so centralising it in one spot as the first step makes sense. Signed-off-by: Dave Chinner <david@fromorbit.com> Merge of xfs-linux-melb:xfs-kern:32282a by kenmcd. move sync code to its own file