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

    Christoph Hellwig
     

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

    Christoph Hellwig
     

16 Jan, 2010

2 commits


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

    Christoph Hellwig
     
  • 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

    Christoph Hellwig
     

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

    Christoph Hellwig
     

01 Sep, 2009

1 commit


19 Jan, 2009

1 commit


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 +8

    Signed-off-by: David Chinner
    Signed-off-by: Lachlan McIlroy

    Eric Sandeen
     
  • 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:29754a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy
    Signed-off-by: Tim Shimmin

    Christoph Hellwig
     

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:29492a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: David Chinner
    Signed-off-by: Tim Shimmin

    Christoph Hellwig
     
  • 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:29322a

    Signed-off-by: Eric Sandeen
    Signed-off-by: David Chinner
    Signed-off-by: Tim Shimmin

    Eric Sandeen
     

14 Jul, 2007

2 commits

  • SGI-PV: 966004
    SGI-Modid: xfs-linux-melb:xfs-kern:28866a

    Signed-off-by: David Chinner
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Tim Shimmin

    David Chinner
     
  • 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:28641a

    Signed-off-by: David Chinner
    Signed-off-by: Vlad Apostolov
    Signed-off-by: Tim Shimmin

    David Chinner
     

19 Jun, 2006

1 commit


09 Jun, 2006

1 commit


22 Mar, 2006

1 commit


02 Nov, 2005

2 commits


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!

    Linus Torvalds