12 Oct, 2011
1 commit
-
Instead of passing the block number and mount structure explicitly
get them off the bp and fix make the argument order more natural.Also move it to xfs_buf.c and stop printing the device name given
that we already get the fs name as part of xfs_alert, and we know
what device is operates on because of the caller that gets printed,
finally rename it to xfs_buf_ioerror_alert and pass __func__ as
argument where it makes sense.Signed-off-by: Christoph Hellwig
Reviewed-by: Dave Chinner
Signed-off-by: Alex Elder
13 Feb, 2010
1 commit
-
file_remove_suid already calls into ->setattr to clear the suid and
sgid bits if needed, no need to start a second transaction to do it
ourselves.Note that xfs_write_clear_setuid issues a sync transaction while the
path through ->setattr doesn't, but that is consistant with the
other filesystems.Signed-off-by: Christoph Hellwig
Reviewed-by: Alex Elder
Signed-off-by: Alex Elder
16 Jan, 2010
2 commits
-
Move xfsbdstrat and xfs_bdstrat_cb from xfs_lrw.c and xfs_bioerror
and xfs_bioerror_relse from xfs_rw.c into xfs_buf.c. This also
means xfs_bioerror and xfs_bioerror_relse can be marked static now.Signed-off-by: Christoph Hellwig
Signed-off-by: Alex Elder -
Fold XFS_bwrite into it's only caller, xfs_bwrite and move it into
xfs_buf.c instead of leaving it as a fairly large inline function.Signed-off-by: Christoph Hellwig
Signed-off-by: Alex Elder
12 Dec, 2009
2 commits
-
This function is too large to efficiently be inlined.
Signed-off-by: Christoph Hellwig
Reviewed-by: Dave Chinner
Signed-off-by: Alex Elder -
When xfs_free_eofblocks is called from ->release the VM might already
hold the mmap_sem, but in the write path we take the iolock before
taking the mmap_sem in the generic write code.Switch xfs_free_eofblocks to only trylock the iolock if called from
->release and skip trimming the prellocated blocks in that case.
We'll still free them later on the final iput.Signed-off-by: Christoph Hellwig
Reviewed-by: Alex Elder
Signed-off-by: Alex Elder
02 Sep, 2009
1 commit
-
The guarantees for O_SYNC are exactly the same as the ones we need to
make for an fsync call (and given that Linux O_SYNC is O_DSYNC the
equivalent is fdadatasync, but we treat both the same in XFS), except
with a range data writeout. Jan Kara has started unifying these two
path for filesystems using the generic helpers, and I've started to
look at XFS.The actual transaction commited by xfs_fsync and xfs_write_sync_logforce
has a different transaction number, but actually is exactly the same.
We'll only use the fsync transaction going forward. One major difference
is that xfs_write_sync_logforce never issues a cache flush unless we
commit a transaction causing that as a side-effect, which is an obvious
bug in the O_SYNC handling. Second all the locking and i_update_size
vs i_update_core changes from 978b7237123d007b9fa983af6e0e2fa8f97f9934
never made it to xfs_write_sync_logforce, so we add them back.To make xfs_fsync easily usable from the O_SYNC path, the filemap_fdatawait
call is moved up to xfs_file_fsync, so that we don't wait on the whole
file after we already waited for our portion in xfs_write.We'll also use a plain call to filemap_write_and_wait_range instead
of the previous sync_page_rang which did it in two steps including
an half-hearted inode write out that doesn't help us.Once we're done with this also remove the now useless i_update_size
tracking.Signed-off-by: Christoph Hellwig
Reviewed-by: Felix Blyakher
Signed-off-by: Felix Blyakher
01 Sep, 2009
1 commit
-
A lot more functions could be made static, but they need
forward declarations; this does some easy ones, and also
found a few unused functions in the process.Signed-off-by: Eric Sandeen
Reviewed-by: Christoph Hellwig
Signed-off-by: Felix Blyakher
19 Jan, 2009
1 commit
-
Remove the last of the macros-defined-to-static-functions.
Signed-off-by: Eric Sandeen
Reviewed-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy
07 Feb, 2008
2 commits
-
Use XFS_IS_REALTIME_INODE in more places, and #define it to 0 if
CONFIG_XFS_RT is off. This should be safe because mount checks in
xfs_rtmount_init:so if we get mounted w/o CONFIG_XFS_RT, no realtime inodes should be
encountered after that.Defining XFS_IS_REALTIME_INODE to 0 saves a bit of stack space,
presumeably gcc can optimize around the various "if (0)" type checks:xfs_alloc_file_space -8 xfs_bmap_adjacent -16 xfs_bmapi -8
xfs_bmap_rtalloc -16 xfs_bunmapi -28 xfs_free_file_space -64 xfs_imap +8Signed-off-by: David Chinner
Signed-off-by: Lachlan McIlroy -
xfs_iocore_t is a structure embedded in xfs_inode. Except for one field it
just duplicates fields already in xfs_inode, and there is nothing this
abstraction buys us on XFS/Linux. This patch removes it and shrinks source
and binary size of xfs aswell as shrinking the size of xfs_inode by 60/44
bytes in debug/non-debug builds.SGI-PV: 970852
SGI-Modid: xfs-linux-melb:xfs-kern:29754aSigned-off-by: Christoph Hellwig
Signed-off-by: Lachlan McIlroy
Signed-off-by: Tim Shimmin
15 Oct, 2007
2 commits
-
All vnode ops now take struct xfs_inode pointers and the behaviour related
glue is split out into methods of it's own. This required fixing
xfs_create/mkdir/symlink to not mess with the inode pointer but rather use
a separate boolean for error handling. Thanks to Dave Chinner for that
fix.SGI-PV: 969608
SGI-Modid: xfs-linux-melb:xfs-kern:29492aSigned-off-by: Christoph Hellwig
Signed-off-by: David Chinner
Signed-off-by: Tim Shimmin -
m_nreadaheads in the mount struct is never used; remove it and the various
macros assigned to it. Also remove a couple other unused macros in the
same areas.Removes one user of xfs_physmem.
SGI-PV: 968563
SGI-Modid: xfs-linux-melb:xfs-kern:29322aSigned-off-by: Eric Sandeen
Signed-off-by: David Chinner
Signed-off-by: Tim Shimmin
14 Jul, 2007
2 commits
-
SGI-PV: 966004
SGI-Modid: xfs-linux-melb:xfs-kern:28866aSigned-off-by: David Chinner
Signed-off-by: Christoph Hellwig
Signed-off-by: Tim Shimmin -
If hole punching at EOF is done as two steps (i.e. truncate then extend)
the file is in a transient state between the two steps where an
application can see the incorrect file size. Punching a hole to EOF needs
to be treated in teh same way as all other hole punching cases so that the
file size is never seen to change.SGI-PV: 962012
SGI-Modid: xfs-linux-melb:xfs-kern:28641aSigned-off-by: David Chinner
Signed-off-by: Vlad Apostolov
Signed-off-by: Tim Shimmin
19 Jun, 2006
1 commit
-
sharing.
SGI-PV: 904196
SGI-Modid: xfs-linux-melb:xfs-kern:26248aSigned-off-by: Nathan Scott
09 Jun, 2006
1 commit
-
porters.
SGI-PV: 953338
SGI-Modid: xfs-linux-melb:xfs-kern:26108aSigned-off-by: Nathan Scott
22 Mar, 2006
1 commit
-
Signed-off-by: Nathan Scott
02 Nov, 2005
2 commits
-
boilerplate.
SGI-PV: 913862
SGI-Modid: xfs-linux:xfs-kern:23903aSigned-off-by: Nathan Scott
-
SGI-PV: 943122
SGI-Modid: xfs-linux:xfs-kern:23901aSigned-off-by: Nathan Scott
17 Apr, 2005
1 commit
-
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.Let it rip!