CVS log for xfs-linux/xfs_fs.h

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.38 / (download) - annotate - [select for diffs], Wed Jun 25 04:14:48 2008 UTC (9 years, 3 months ago) by tes.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.37: +3 -0 lines
Diff to previous 1.37 (colored)

attrmulti cleanup

xfs_attrmulti_by_handle currently request the size based on
sizeof(attr_multiop_t) but should be using sizeof(xfs_attr_multiop_t)
because that is what it is dealing with.  Despite beeing wrong this
actually harmless in practice because both structures are the same size
on all platforms.

But this sizeof was the only user of struct attr_multiop so we can just
kill it.  Also move the ATTR_OP_* defines xfs_attr.h into the
struct xfs_attr_multiop defintion in xfs_fs.h because they are only used
with that structure, and are part of the user ABI for the
XFS_IOC_ATTRMULTI_BY_HANDLE ioctl.


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

  attrmulti cleanup

Revision 1.37 / (download) - annotate - [select for diffs], Wed May 21 06:14:00 2008 UTC (9 years, 4 months ago) by bnaujok.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.36: +1 -0 lines
Diff to previous 1.36 (colored)

XFS: ASCII case-insensitive support

Implement ASCII case-insensitive support. It's primary purpose
is for supporting existing filesystems that already use this
case-insensitive mode migrated from IRIX. But, if you only need
ASCII-only case-insensitive support (ie. English only) and will
never use another language, then this mode is perfectly adequate.

ASCII-CI is implemented by generating hashes based on lower-case
letters and doing lower-case compares. It implements a new
xfs_nameops vector for doing the hashes and comparisons for
all filename operations.

To create a filesystem with this CI mode, use:
# mkfs.xfs -n version=ci <device>

Signed-off-by: Barry Naujok <bnaujok@sgi.com>
Merge of xfs-linux-melb:xfs-kern:31209a by kenmcd.

  Add geometry flag for ASCII CI 

Revision 1.36 / (download) - annotate - [select for diffs], Mon Oct 8 15:44:50 2007 UTC (10 years ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.35: +7 -3 lines
Diff to previous 1.35 (colored)

fix 32-bit compat ioctls for GETXFLAGS, SETXFLAGS, GETVERSION

XFS_IOC_GETVERSION, XFS_IOC_GETXFLAGS and XFS_IOC_SETXFLAGS all
take a "long" which changes size between 32 and 64 bit platforms.

So, the ioctl cmds that come in from a 32-bit app aren't as expected,
for example on GETXFLAGS,

        unknown cmd fd(3) cmd(80046601){t:'f';sz:4}

due to the size mismatch.

So, use instead the 32-bit version of the commands for compat ioctls,
and other than that it doesn't take any more manipulation.

Also, for both native and compat versions, just define them to
the values as defined in fs.h

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

  fix 32-bit compat ioctls for GETXFLAGS, SETXFLAGS, GETVERSION

Revision 1.35 / (download) - annotate - [select for diffs], Tue Sep 11 06:12:43 2007 UTC (10 years, 1 month ago) by lachlan.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.34: +6 -23 lines
Diff to previous 1.34 (colored)

cleanup fid types mess

Currently XFs has three different fid types: struct fid, struct xfs_fid
and struct xfs_fid2 with hte latter two beeing identicaly and the first
one beeing the same size but an unstructured array with the same size.

This patch consolidates all this to alway uuse struct xfs_fid.

This patch is required for an upcoming patch series from me that revamps
the nfs exporting code and introduces a Linux-wide struct fid.


Note: the patch is ontop of Eric's inode/vnode tracing cleanup.

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

  cleanup fid types mess

Revision 1.34 / (download) - annotate - [select for diffs], Mon Jul 9 06:12:03 2007 UTC (10 years, 3 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.33: +1 -0 lines
Diff to previous 1.33 (colored)

Concurrent Multi-File Data Streams

In media spaces, video is often stored in a frame-per-file format.
When dealing with uncompressed realtime HD video streams in this format,
it is crucial that files do not get fragmented and that multiple files
a placed contiguously on disk.

When multiple streams are being ingested and played out at the same
time, it is critical that the filesystem does not cross the streams
and interleave them together as this creates seek and readahead
cache miss latency and prevents both ingest and playout from meeting
frame rate targets.

This patch set creates a "stream of files" concept into the allocator
to place all the data from a single stream contiguously on disk so
that RAID array readahead can be used effectively. Each additional
stream gets placed in different allocation groups within the
filesystem, thereby ensuring that we don't cross any streams. When
an AG fills up, we select a new AG for the stream that is not in
use.

The core of the functionality is the stream tracking - each inode
that we create in a directory needs to be associated with the
directories' stream. Hence every time we create a file, we look up
the directories' stream object and associate the new file with that
object.

Once we have a stream object for a file, we use the AG that the
stream object point to for allocations. If we can't allocate in that
AG (e.g. it is full) we move the entire stream to another AG. Other
inodes in the same stream are moved to the new AG on their next
allocation (i.e. lazy update).

Stream objects are kept in a cache and hold a reference on the
inode. Hence the inode cannot be reclaimed while there is an
outstanding stream reference. This means that on unlink we need to
remove the stream association and we also need to flush all the
associations on certain events that want to reclaim all unreferenced
inodes (e.g.  filesystem freeze).
Merge of xfs-linux-melb:xfs-kern:29096a by kenmcd.

  Concurrent Multi-File Data Streams feature check in.

Revision 1.33 / (download) - annotate - [select for diffs], Tue May 22 15:50:48 2007 UTC (10 years, 4 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.32: +1 -0 lines
Diff to previous 1.32 (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.32 / (download) - annotate - [select for diffs], Thu Aug 10 15:31:06 2006 UTC (11 years, 2 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.31: +1 -7 lines
Diff to previous 1.31 (colored)

Remove several macros that are no longer used anywhere

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

  Remove several macros that are no longer used anywhere

Revision 1.31 / (download) - annotate - [select for diffs], Fri May 19 06:06:01 2006 UTC (11 years, 5 months ago) by bnaujok.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.30: +1 -0 lines
Diff to previous 1.30 (colored)

Add degframentation exclusion support
Merge of xfs-linux-melb:xfs-kern:25986a by kenmcd.

  Define sysctl no-defrag flag

Revision 1.30 / (download) - annotate - [select for diffs], Fri May 12 15:23:20 2006 UTC (11 years, 5 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored)

Fix a comment typo, originally noticed by Ming Zhang.
Merge of xfs-linux-melb:xfs-kern:25921a by kenmcd.

Revision 1.29 / (download) - annotate - [select for diffs], Fri Dec 2 02:48:45 2005 UTC (11 years, 10 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.28: +4 -4 lines
Diff to previous 1.28 (colored)

Sort out cosmetic differences between user and kernel copies of some sources.
Merge of xfs-linux-melb:xfs-kern:24659a by kenmcd.

Revision 1.28 / (download) - annotate - [select for diffs], Fri Nov 11 14:16:20 2005 UTC (11 years, 11 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.27: +2 -0 lines
Diff to previous 1.27 (colored)

Implement the di_extsize allocator hint for non-realtime files as well.  Also provides a mechanism for inheriting this property from the parent directory for new files.
Merge of xfs-linux-melb:xfs-kern:24367a by kenmcd.

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

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

Revision 1.26 / (download) - annotate - [select for diffs], Fri Sep 16 15:10:21 2005 UTC (12 years, 1 month ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.25: +2 -1 lines
Diff to previous 1.25 (colored)

Ondisk format extension for extended attributes (attr2).  Basically, the data/attr forks now grow up/down from either end of the literal area, rather than dividing the literal area into two chunks and growing both upward.  Means we can now make much more efficient use of the attribute space, incl. fitting DMF attributes inline in 256 byte inodes, and large jumps in dbench3 performance numbers.  It is self enabling, but can be forced on/off via the attr2/noattr2 mount options.
Merge of xfs-linux-melb:xfs-kern:23835a by kenmcd.

Revision 1.25 / (download) - annotate - [select for diffs], Fri Sep 16 15:09:30 2005 UTC (12 years, 1 month ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.24: +0 -0 lines
Diff to previous 1.24 (colored)

Ondisk format extension for extended attributes (attr2).  Basically, the data/attr forks now grow up/down from either end of the literal area, rather than dividing the literal area into two chunks and growing both upward.  Means we can now make much more efficient use of the attribute space, incl. fitting DMF attributes inline in 256 byte inodes, and large jumps in dbench3 performance numbers.  It is self enabling, but can be forced on/off via the attr2/noattr2 mount options.
Merge of xfs-linux-melb:xfs-kern:23834a by kenmcd.

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jun 20 03:43:15 2005 UTC (12 years, 3 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.23: +2 -3 lines
Diff to previous 1.23 (colored)

Makes more sense to use the fsxattr interface instead of adding new ioctls for project IDs.
Merge of xfs-linux-melb:xfs-kern:22899a by kenmcd.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Mar 24 05:02:44 2005 UTC (12 years, 6 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.22: +2 -0 lines
Diff to previous 1.22 (colored)

Add a get/set interface for XFS project identifiers.
Merge of xfs-linux-melb:xfs-kern:21938a by kenmcd.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Sep 22 07:13:53 2004 UTC (13 years ago) by nathans
Branch: MAIN
Changes since 1.21: +2 -0 lines
Diff to previous 1.21 (colored)

Add nosymlinks inode flag for the security folks, reserve projinherit flag.

Revision 1.21 / (download) - annotate - [select for diffs], Mon Aug 16 16:54:27 2004 UTC (13 years, 2 months ago) by hch
Branch: MAIN
Changes since 1.20: +1 -1 lines
Diff to previous 1.20 (colored)

avoid using pid_t in ioctl ABI
switch xfs_lock_t.l_pid to __u32

Revision 1.20 / (download) - annotate - [select for diffs], Mon Aug 16 16:43:08 2004 UTC (13 years, 2 months ago) by hch
Branch: MAIN
Changes since 1.19: +7 -0 lines
Diff to previous 1.19 (colored)

Add 32bit ioctl translation
move file flag ioctl defintions to xfs_fs.h

Revision 1.19 / (download) - annotate - [select for diffs], Mon Aug 16 06:43:29 2004 UTC (13 years, 2 months ago) by nathans
Branch: MAIN
Changes since 1.18: +1 -0 lines
Diff to previous 1.18 (colored)

Add a realtime inheritance bit for directory inodes so new files can be automatically created as realtime files.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Aug 13 05:31:26 2004 UTC (13 years, 2 months ago) by nathans
Branch: MAIN
Changes since 1.17: +24 -24 lines
Diff to previous 1.17 (colored)

Use sparse whitespace approach that Al took to be more consistent.  Couple more sparse fixes.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Jun 28 10:03:43 2004 UTC (13 years, 3 months ago) by nathans
Branch: MAIN
Changes since 1.16: +9 -9 lines
Diff to previous 1.16 (colored)

sparse: annotate source for user pointers.  From Chris Wedgwood.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Feb 10 03:00:00 2004 UTC (13 years, 8 months ago) by tes
Branch: MAIN
Changes since 1.15: +7 -0 lines
Diff to previous 1.15 (colored)

Add XFS_FS_GOINGDOWN ioctl to xfs.
My motivation is for log recovery testing.
Add ioctl cmd for XFS_IOC_GOINGDOWN (the macro definition).
Add some macros for the ioctl different arguments.

Revision 1.15 / (download) - annotate - [select for diffs], Fri Oct 3 21:50:06 2003 UTC (14 years ago) by lord
Branch: MAIN
Changes since 1.14: +5 -10 lines
Diff to previous 1.14 (colored)

small cleanup
Merge of 2.4.x-xfs-kern:slinx:159477a by lord.

  Merge of 2.4.x-xfs-kern-lbs:slinx:159477a by lord.
  small cleanup

Revision 1.14 / (download) - annotate - [select for diffs], Mon Sep 15 05:03:19 2003 UTC (14 years, 1 month ago) by nathans
Branch: MAIN
Changes since 1.13: +7 -5 lines
Diff to previous 1.13 (colored)

Undoes mod:     xfs-linux:slinx:158358a
Implement several additional inode flags - immutable, append-only, etc; contributed by Ethan Benson.

Revision 1.13 / (download) - annotate - [select for diffs], Mon Sep 15 03:40:38 2003 UTC (14 years, 1 month ago) by nathans
Branch: MAIN
Changes since 1.12: +5 -7 lines
Diff to previous 1.12 (colored)

Undoes mod:     xfs-linux:slinx:158357a
Undo last mod, checked in against wrong bug number with wrong change message.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Sep 15 03:13:46 2003 UTC (14 years, 1 month ago) by nathans
Branch: MAIN
Changes since 1.11: +7 -5 lines
Diff to previous 1.11 (colored)

Separate the big filesystems macro out into separate big inums and blknos macros.  Also fix the check for too-large filesystems in the process.

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

The Big Move
linux/fs/xfs/xfs_fs.h 1.9 Renamed to xfs_fs.h

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

Nuke

Revision 1.9 / (download) - annotate - [select for diffs], Mon Mar 31 03:22:06 2003 UTC (14 years, 6 months ago) by nathans
Branch: MAIN
CVS Tags: XFS-1_3_0pre1
Changes since 1.8: +13 -1 lines
Diff to previous 1.8 (colored)

Fix up some minor namespace pollution problems.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Mar 27 03:05:30 2003 UTC (14 years, 6 months ago) by nathans
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored)

Fix definition of setresblks - nothing uses it yet, but DMF will (so fix now).

Revision 1.7 / (download) - annotate - [select for diffs], Mon Dec 2 05:53:26 2002 UTC (14 years, 10 months ago) by nathans
Branch: MAIN
Changes since 1.6: +10 -9 lines
Diff to previous 1.6 (colored)

Sector size updates - macros for calculating address/size of sector-sized
data structures (sb,agf,agi,agfl) are now sector size aware.  Cleaned up
the early mount code dealing with log devices and logsectsize.
Add a geometry flag for non-512-byte sector sizes.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Nov 13 23:11:12 2002 UTC (14 years, 11 months ago) by nathans
Branch: MAIN
Changes since 1.5: +0 -0 lines
Diff to previous 1.5 (colored)

Undoes mod:     2.4.x-xfs:slinx:132930a
Rethink some of those recent types changes slightly.

Revision 1.5 / (download) - annotate - [select for diffs], Wed Nov 13 02:25:49 2002 UTC (14 years, 11 months ago) by nathans
Branch: MAIN
Changes since 1.4: +5 -7 lines
Diff to previous 1.4 (colored)

Change AT_* to XFS_AT_* to prevent namespace collisions; move some type
declarations into more appropriate places.
Move some type declarations into more appropriate places.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Oct 9 03:06:48 2002 UTC (15 years ago) by nathans
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored)

Global search and replace of the b* memory routines to their mem* equivalents.
(bcopy->memcopy, ovbcopy->memmove, bzero->memset, bcmp->memcmp).

Revision 1.3 / (download) - annotate - [select for diffs], Wed Oct 2 14:45:16 2002 UTC (15 years ago) by lord
Branch: MAIN
Changes since 1.2: +0 -8 lines
Diff to previous 1.2 (colored)

remove some bit shifting constants we do not use
remove some bit shifting constants we do not use

Revision 1.2 / (download) - annotate - [select for diffs], Sat Aug 24 12:39:22 2002 UTC (15 years, 1 month ago) by lord
Branch: MAIN
Changes since 1.1: +0 -1 lines
Diff to previous 1.1 (colored)

remove duplicate definition

Revision 1.1 / (download) - annotate - [select for diffs], Fri Jul 12 21:10:34 2002 UTC (15 years, 3 months ago) by lord
Branch: MAIN

debug build fix

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>