CVS log for xfs-linux-nodel/xfs_ialloc.h

[BACK] Up to [Development] / xfs-linux-nodel

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.51 / (download) - annotate - [select for diffs], Wed Oct 1 04:30:30 2008 UTC (9 years ago) by bnaujok.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.50: +0 -3 lines
Diff to previous 1.50 (colored)

Sync up kernel and user-space headers
Merge of xfs-linux-melb:xfs-kern:32231a by kenmcd.

  Sync up kernel and user-space headers

Revision 1.50 / (download) - annotate - [select for diffs], Wed Sep 24 16:31:33 2008 UTC (9 years, 1 month ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.49: +5 -0 lines
Diff to previous 1.49 (colored)

implement generic xfs_btree_get_rec

Not really much reason to make it generic given that it's so small,
but this is the last non-method in xfs_alloc_btree.c and xfs_ialloc_btree.c,
so it makes the whole btree implementation more structured.


Signed-off-by: Christoph Hellwig <hch@lst.de>
Merge of xfs-linux-melb:xfs-kern:32206a by kenmcd.

  implement generic xfs_btree_get_rec

Revision 1.49 / (download) - annotate - [select for diffs], Wed Sep 24 16:21:48 2008 UTC (9 years, 1 month ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.48: +15 -0 lines
Diff to previous 1.48 (colored)

implement generic xfs_btree_lookup

From: Dave Chinner <dgc@sgi.com>

[hch: split out from bigger patch and minor adaptions]


Signed-off-by: Christoph Hellwig <hch@lst.de>
Merge of xfs-linux-melb:xfs-kern:32192a by kenmcd.

  implement generic xfs_btree_lookup

Revision 1.48 / (download) - annotate - [select for diffs], Thu Aug 2 16:09:24 2007 UTC (10 years, 2 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.47: +1 -6 lines
Diff to previous 1.47 (colored)

Pick a single default inode cluster size.

Remove scaling of inode "clusters" based on machine memory;
small cluster cut-point was an unrealistic 32MB and was
probably never tested.

Removes another user of xfs_physmem.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Merge of xfs-linux-melb:xfs-kern:29324a by kenmcd.

  Don't scale inode cluster size based on physical memory.

Revision 1.47 / (download) - annotate - [select for diffs], Tue May 22 15:50:48 2007 UTC (10 years, 5 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.46: +10 -0 lines
Diff to previous 1.46 (colored)

Lazy Superblock Counters

When we have a couple of hundred transactions on the fly at once,
they all typically modify the on disk superblock in some way.
create/unclink/mkdir/rmdir modify inode counts, allocation/freeing
modify free block counts.

When these counts are modified in a transaction, the must eventually
lock the superblock buffer and apply the mods.  The buffer then
remains locked until the transaction is committed into the incore
log buffer. The result of this is that with enough transactions on
the fly the incore superblock buffer becomes a bottleneck.

The result of contention on the incore superblock buffer is that
transaction rates fall - the more pressure that is put on the
superblock buffer, the slower things go.

The key to removing the contention is to not require the superblock
fields in question to be locked. We do that by not marking the
superblock dirty in the transaction. IOWs, we modify the incore
superblock but do not modify the cached superblock buffer. In short,
we do not log superblock modifications to critical fields in the
superblock on every transaction. In fact we only do it just before
we write the superblock to disk every sync period or just before
unmount.

This creates an interesting problem - if we don't log or write out
the fields in every transaction, then how do the values get
recovered after a crash? the answer is simple - we keep enough
duplicate, logged information in other structures that we can
reconstruct the correct count  after log recovery has been
performed.

It is the AGF and AGI structures that contain the duplicate
information; after recovery, we walk every AGI and AGF and sum their
individual counters to get the correct value, and we do a
transaction into the log to correct them. An optimisation of this is
that if we have a clean unmount record, we know the value in the
superblock is correct, so we can avoid the summation walk under
normal conditions and so mount/recovery times do not change under
normal operation.

One wrinkle that was discovered during development was that the
blocks used in the freespace btrees are never accounted for in the
AGF counters. This was once a valid optimisation to make; when the
filesystem is full, the free space btrees are empty and consume no
space. Hence when it matters, the "accounting" is correct.  But that
means the when we do the AGF summations, we would not have a correct
count and xfs_check would complain.  Hence a new counter was added
to track the number of blocks used by the free space btrees. This is
an *on-disk format change*.

As a result of this, lazy superblock counters are a mkfs option
and at the moment on linux there is no way to convert an old
filesystem. This is possible - xfs_db can be used to twiddle the
right bits and then xfs_repair will do the format conversion
for you. Similarly, you can convert backwards as well. At some point
we'll add functionality to xfs_admin to do the bit twiddling
easily....
Merge of xfs-linux-melb:xfs-kern:28652a by kenmcd.

  Changes to support lazy superblock counters.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Sep 23 03:51:28 2005 UTC (12 years, 1 month ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.45: +12 -26 lines
Diff to previous 1.45 (colored)

Update license/copyright notices to match the prefered SGI boilerplate.
Merge of xfs-linux-melb:xfs-kern:23903a by kenmcd.

Revision 1.45 / (download) - annotate - [select for diffs], Fri Sep 23 03:48:50 2005 UTC (12 years, 1 month ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.44: +12 -28 lines
Diff to previous 1.44 (colored)

Remove xfs_macros.c, xfs_macros.h, rework headers a whole lot.
Merge of xfs-linux-melb:xfs-kern:23901a by kenmcd.

Revision 1.44 / (download) - annotate - [select for diffs], Mon Oct 6 18:11:55 2003 UTC (14 years ago) by lord
Branch: MAIN
Changes since 1.43: +4 -1 lines
Diff to previous 1.43 (colored)

Implement deletion of inode clusters in XFS.
changed prototype for xfs_difree

Revision 1.43 / (download) - annotate - [select for diffs], Fri Jun 27 18:04:26 2003 UTC (14 years, 4 months ago) by cattelan
Branch: MAIN
Changes since 1.42: +181 -0 lines
Diff to previous 1.42 (colored)

The Big Move
linux/fs/xfs/xfs_ialloc.h 1.41 Renamed to xfs_ialloc.h

Revision 1.42 / (download) - annotate - [select for diffs], Fri Jun 27 17:57:21 2003 UTC (14 years, 4 months ago) by cattelan
Branch: MAIN
CVS Tags: DENUKE
Changes since 1.41: +0 -181 lines
Diff to previous 1.41 (colored)

Nuke

Revision 1.41 / (download) - annotate - [select for diffs], Tue Apr 15 23:16:46 2003 UTC (14 years, 6 months ago) by cattelan
Branch: MAIN
CVS Tags: XFS-1_3_0pre1
Changes since 1.40: +16 -16 lines
Diff to previous 1.40 (colored)

Whitespace cleanup
Clean up some whitespace... revert some whitespace changes from previous whitespace cleanup (incorrect tabs)

Revision 1.40 / (download) - annotate - [select for diffs], Wed Jul 10 19:00:42 2002 UTC (15 years, 3 months ago) by sandeen
Branch: MAIN
Changes since 1.39: +26 -26 lines
Diff to previous 1.39 (colored)

whitespace cleanup

Revision 1.39 / (download) - annotate - [select for diffs], Mon Sep 25 05:42:07 2000 UTC (17 years, 1 month ago) by nathans
Branch: MAIN
CVS Tags: Release-1_0_0, PreRelease-0_10, Linux-2_4_5-merge
Changes since 1.38: +9 -7 lines
Diff to previous 1.38 (colored)

use xfs.h, remove all traces of SIM, push extern declarations into headers,
dead code removal.

Revision 1.38 / (download) - annotate - [select for diffs], Fri Jun 30 18:54:07 2000 UTC (17 years, 3 months ago) by lord
Branch: MAIN
Changes since 1.37: +2 -2 lines
Diff to previous 1.37 (colored)

change how inode buffer offset is calculated to allow non-mapped inode
buffers.

Revision 1.37 / (download) - annotate - [select for diffs], Fri Jun 9 02:50:02 2000 UTC (17 years, 4 months ago) by kenmcd
Branch: MAIN
CVS Tags: GPL-ENCUMBRANCE
Changes since 1.36: +26 -13 lines
Diff to previous 1.36 (colored)

Updated copyright and license notices, ready for open source release
Merge of 2.3.99pre2-xfs:slinx:55821a by ananth.

Revision 1.36 / (download) - annotate - [select for diffs], Sun Jan 30 09:59:06 2000 UTC (17 years, 8 months ago) by kenmcd
Branch: MAIN
CVS Tags: DELETE
Changes since 1.35: +11 -16 lines
Diff to previous 1.35 (colored)

Encumbrance review done.
Add copyright and license words consistent with GPL.
Refer to http://fsg.melbourne.sgi.com/reviews/ for details.

There is a slight change in the license terms and conditions words
to go with the copyrights, so most of the files are not getting
new GPL's, just updated versions ... but there are 20-30 more files
here as well.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Jan 3 21:41:53 2000 UTC (17 years, 9 months ago) by kenmcd
Branch: MAIN
Changes since 1.34: +24 -1 lines
Diff to previous 1.34 (colored)

Encumbrance review done.  Add copyright and license words consistent with GPL.

Revision 1.34 / (download) - annotate - [select for diffs], Mon Nov 22 19:39:07 1999 UTC (17 years, 11 months ago) by lord
Branch: MAIN
Changes since 1.33: +1 -1 lines
Diff to previous 1.33 (colored)

virtualize interface to buffer data

Revision 1.33 / (download) - annotate - [select for diffs], Wed Nov 17 19:22:23 1999 UTC (17 years, 11 months ago) by lord
Branch: MAIN
Changes since 1.32: +6 -6 lines
Diff to previous 1.32 (colored)

replace struct buf and buf_t references with xfs_buf and xfs_buf_t

Revision 1.32 / (download) - annotate - [select for diffs], Tue Jul 15 17:58:42 1997 UTC (20 years, 3 months ago) by doucette
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored)

Add okalloc argument, to control whether allocation is done.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Feb 21 05:00:30 1996 UTC (21 years, 8 months ago) by ack
Branch: MAIN
Changes since 1.30: +8 -2 lines
Diff to previous 1.30 (colored)

auto-merge of changes from /proj/banyan/isms/irix/kern/fs/xfs/RCS/xfs_ialloc.h,v
> ----------------------------
> revision 1.31
> date: 1996/02/20 23:40:03;  author: ajs;  state: Exp;  lines: +8 -2
> 350478 Make the inode cluster size variable.
> =============================================================================

Revision 1.30 / (download) - annotate - [select for diffs], Wed Aug 16 05:46:17 1995 UTC (22 years, 2 months ago) by doucette
Branch: MAIN
Changes since 1.29: +24 -6 lines
Diff to previous 1.29 (colored)

Turn some macros into functions for 32-bit kernels, to save some memory.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Aug 8 00:56:24 1995 UTC (22 years, 2 months ago) by rcc
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 (colored)

284911 - bump up the inode cluster size to 8K

Revision 1.28 / (download) - annotate - [select for diffs], Mon Aug 7 18:29:07 1995 UTC (22 years, 2 months ago) by doucette
Branch: MAIN
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored)

Cosmetic cleanup in the function prototypes.

Revision 1.27 / (download) - annotate - [select for diffs], Thu Apr 13 03:15:10 1995 UTC (22 years, 6 months ago) by ajs
Branch: MAIN
Changes since 1.26: +9 -7 lines
Diff to previous 1.26 (colored)

First cut at disk error handling

Revision 1.26 / (download) - annotate - [select for diffs], Fri Mar 31 20:05:30 1995 UTC (22 years, 7 months ago) by doucette
Branch: MAIN
Changes since 1.25: +16 -12 lines
Diff to previous 1.25 (colored)

Use struct xxx * instead of xxx_t * in xfs header files to avoid
unnecessary dependencies between header files.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Feb 9 03:15:55 1995 UTC (22 years, 8 months ago) by ajs
Branch: MAIN
Changes since 1.24: +12 -4 lines
Diff to previous 1.24 (colored)

259540 - Add definition of XFS_INODE_CLUSTER_SIZE and change
the prototype of xfs_dilocate().

Revision 1.24 / (download) - annotate - [select for diffs], Tue Oct 11 22:06:25 1994 UTC (23 years ago) by doucette
Branch: MAIN
Changes since 1.23: +2 -0 lines
Diff to previous 1.23 (colored)

#ifndef SIM code not needed for programs linking with libsim.a, to
make them smaller.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Jul 19 21:58:45 1994 UTC (23 years, 3 months ago) by doucette
Branch: MAIN
Changes since 1.22: +10 -1 lines
Diff to previous 1.22 (colored)

Make xfs_ialloc_read_agi external so xfs_itable.c routines can call it.

Revision 1.22 / (download) - annotate - [select for diffs], Fri May 13 18:56:18 1994 UTC (23 years, 5 months ago) by doucette
Branch: MAIN
Changes since 1.21: +0 -3 lines
Diff to previous 1.21 (colored)

Remove the sameag flags, don't need them any more.

Revision 1.21 / (download) - annotate - [select for diffs], Wed May 4 23:18:27 1994 UTC (23 years, 5 months ago) by doucette
Branch: MAIN
Changes since 1.20: +5 -7 lines
Diff to previous 1.20 (colored)

Remove xfs_ialloc_find_free, turned into a macro XFS_IALLOC_FIND_FREE.

Revision 1.20 / (download) - annotate - [select for diffs], Wed May 4 00:21:04 1994 UTC (23 years, 5 months ago) by doucette
Branch: MAIN
Changes since 1.19: +44 -71 lines
Diff to previous 1.19 (colored)

Add new routines xfs_ialloc_compute_maxlevels, find_free, and log_agi
for new inode btree scheme; remove xfs_dialloc_next_free; replace
xfs_dialloc_ino and xfs_dialloc_finish with xfs_dialloc.

Revision 1.19 / (download) - annotate - [select for diffs], Fri Apr 22 22:58:09 1994 UTC (23 years, 6 months ago) by doucette
Branch: MAIN
Changes since 1.18: +10 -10 lines
Diff to previous 1.18 (colored)

Change variable names from buf to bp to avoid global buf; also change
...buf to ...bp for consistency.

Revision 1.18 / (download) - annotate - [select for diffs], Sun Apr 17 23:34:27 1994 UTC (23 years, 6 months ago) by doucette
Branch: MAIN
Changes since 1.17: +5 -4 lines
Diff to previous 1.17 (colored)

Change "functional" macros' names from lower to uppercase, for consistency
with everything else.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Apr 12 01:16:44 1994 UTC (23 years, 6 months ago) by doucette
Branch: MAIN
Changes since 1.16: +11 -9 lines
Diff to previous 1.16 (colored)

Split xfs_fsblock_t into multiple types.
Use mp instead of sbp in all the address macros.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Apr 6 20:59:07 1994 UTC (23 years, 6 months ago) by ajs
Branch: MAIN
Changes since 1.15: +42 -7 lines
Diff to previous 1.15 (colored)

Fix prototypes.

Revision 1.15 / (download) - annotate - [select for diffs], Wed Feb 23 21:23:41 1994 UTC (23 years, 8 months ago) by ajs
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

Change the return type of xfs_difree() from xfs_ino_t
to void.  This is because the next fields in AGINO inodes
are maintained entirely at this level.

Revision 1.14 / (download) - annotate - [select for diffs], Fri Feb 18 01:05:45 1994 UTC (23 years, 8 months ago) by wei_hu
Branch: MAIN
Changes since 1.13: +18 -2 lines
Diff to previous 1.13 (colored)

new i/f to xfs_ialloc and xfs_dialloc to signal caller when current
transaction needs to be committed and call retried.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Jan 4 19:34:19 1994 UTC (23 years, 9 months ago) by doucette
Branch: MAIN
Changes since 1.12: +41 -18 lines
Diff to previous 1.12 (colored)

Reformatting to get function prototypes and definitions to match, both
having one-argument-per-line plus a comment.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Dec 30 22:34:19 1993 UTC (23 years, 9 months ago) by doucette
Branch: MAIN
Changes since 1.11: +30 -31 lines
Diff to previous 1.11 (colored)

Remove old cruft left over from btree days.  Reformat/comment the exported
function prototypes.

Revision 1.11 / (download) - annotate - [select for diffs], Mon Dec 27 22:24:13 1993 UTC (23 years, 10 months ago) by doucette
Branch: MAIN
Changes since 1.10: +3 -2 lines
Diff to previous 1.10 (colored)

Split allocation group header into two buffers; make superblock one
buffer long instead of one block long.

Revision 1.10 / (download) - annotate - [select for diffs], Tue Dec 14 00:35:58 1993 UTC (23 years, 10 months ago) by doucette
Branch: MAIN
Changes since 1.9: +1 -1 lines
Diff to previous 1.9 (colored)

Change xfs_difree to not change the mode and format fields of the inode;
let the caller do that (and log them incore).  Return the value that the
caller should store (and log) in the incore union.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Nov 29 21:39:52 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.8: +0 -19 lines
Diff to previous 1.8 (colored)

Change inode mapping scheme from btree to direct.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Nov 19 21:42:01 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.7: +7 -5 lines
Diff to previous 1.7 (colored)

Fix some inode allocation problems - macros for counting blocks were wrong.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Nov 17 01:41:49 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (colored)

Get rid of warnings from ragnarok compilers by adding casts, changing
types, adding lint comments.
Get rid of xfs_extdesc_t, replace with xfs_bmbt_rec_t.

Revision 1.6 / (download) - annotate - [select for diffs], Fri Nov 12 18:49:52 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.5: +14 -13 lines
Diff to previous 1.5 (colored)

Make mount struct contain sb, not a pointer to it.  Add mp argument to
some routines, replace tp with mp in others.  Put the mp in the cursor,
as well as blocklog.

Revision 1.5 / (download) - annotate - [select for diffs], Tue Nov 9 01:41:10 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.4: +9 -32 lines
Diff to previous 1.4 (colored)

More stuff in btree.[ch].  Structure field name changes.

Revision 1.4 / (download) - annotate - [select for diffs], Sat Nov 6 22:04:50 1993 UTC (23 years, 11 months ago) by doucette
Branch: MAIN
Changes since 1.3: +17 -22 lines
Diff to previous 1.3 (colored)

Get rid of nested includes.  Get rid of dummy freelist inode, use real
inode instead.  Get rid of xfs_ialloc_block_t, replace with xfs_btree_block_t.
Add cur argument to XFS_IALLOC... macros.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Oct 30 00:24:49 1993 UTC (24 years ago) by doucette
Branch: MAIN
Changes since 1.2: +5 -22 lines
Diff to previous 1.2 (colored)

Move stuff into xfs_inum.h and xfs_dinode.h.
Change types from u_int??_t form to __uint??_t form.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Oct 29 20:35:13 1993 UTC (24 years ago) by doucette
Branch: MAIN
Changes since 1.1: +4 -3 lines
Diff to previous 1.1 (colored)

Fix includes, get rid of warnings.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Oct 29 17:22:47 1993 UTC (24 years ago) by doucette
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>