21 Jun, 2016

1 commit

  • Convert XFS to use the new iomap based multipage write path. This involves
    implementing the ->iomap_begin and ->iomap_end methods, and switching the
    buffered file write, page_mkwrite and xfs_iozero paths to the new iomap
    helpers.

    With this change __xfs_get_blocks will never be used for buffered writes,
    and the code handling them can be removed.

    Based on earlier code from Dave Chinner.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Bob Peterson
    Signed-off-by: Dave Chinner

    Christoph Hellwig
     

30 Jul, 2014

1 commit

  • Trying to support tiny disks only and saving a bit memory might have
    made sense on an SGI O2 15 years ago, but is pretty pointless today.

    Remove the rarely tested codepath that uses various smaller in-memory
    types to reduce our test matrix and make the codebase a little bit
    smaller and less complicated.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Ben Myers
    Signed-off-by: Dave Chinner

    Christoph Hellwig
     

08 May, 2013

1 commit

  • Running a CONFIG_XFS_DEBUG kernel in production environments is not
    the best idea as it introduces significant overhead, can change
    the behaviour of algorithms (such as allocation) to improve test
    coverage, and (most importantly) panic the machine on non-fatal
    errors.

    There are many cases where all we want to do is run a
    kernel with more bounds checking enabled, such as is provided by the
    ASSERT() statements throughout the code, but without all the
    potential overhead and drawbacks.

    This patch converts all the ASSERT statements to evaluate as
    WARN_ON(1) statements and hence if they fail dump a warning and a
    stack trace to the log. This has minimal overhead and does not
    change any algorithms, and will allow us to find strange "out of
    bounds" problems more easily on production machines.

    There are a few places where assert statements contain debug only
    code. These are converted to be debug-or-warn only code so that we
    still get all the assert checks in the code.

    Signed-off-by: Dave Chinner
    Reviewed-by: Brian Foster
    Signed-off-by: Ben Myers

    Dave Chinner
     

12 Jan, 2013

1 commit

  • The CONFIG_EXPERIMENTAL config item has not carried much meaning for a
    while now and is almost always enabled by default. As agreed during the
    Linux kernel summit, remove it from any "depends on" lines in Kconfigs.

    CC: Ben Myers
    CC: Alex Elder
    Signed-off-by: Kees Cook
    Acked-by: Ben Myers

    Kees Cook
     

20 Nov, 2012

1 commit

  • - add a mount feature bit for CRC enabled filesystems
    - add some helpers for generating and verifying the CRCs
    - add a copy_uuid helper

    The checksumming helpers are loosely based on similar ones in sctp,
    all other bits come from Dave Chinner.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Dave Chinner
    Reviewed-by: Mark Tinguely
    Signed-off-by: Ben Myers

    Christoph Hellwig
     

05 Oct, 2010

1 commit

  • Remove "depends on" line from QUOTACTL config option and rather select
    the option explicitely from config options which need it. It makes more
    sense this way and also fixes Kconfig warning due to GFS2 selecting
    QUOTACTL but QUOTACTL not depending on it.

    Signed-off-by: Jan Kara

    Jan Kara
     

10 Jun, 2009

1 commit

  • This patch rips out the XFS ACL handling code and uses the generic
    fs/posix_acl.c code instead. The ondisk format is of course left
    unchanged.

    This also introduces the same ACL caching all other Linux filesystems do
    by adding pointers to the acl and default acl in struct xfs_inode.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Eric Sandeen

    Christoph Hellwig
     

19 Jan, 2009

1 commit

  • Open by handle just grabs an inode by handle and then creates itself
    a dentry for it. While this works for regular files it is horribly
    broken for directories, where the VFS locking relies on the fact that
    there is only just one single dentry for a given inode, and that
    these are always connected to the root of the filesystem so that
    it's locking algorithms work (see Documentations/filesystems/Locking)

    Remove all the existing open by handle code and replace it with a small
    wrapper around the exportfs code which deals with all these issues.
    At the same time we also make the checks for a valid handle strict
    enough to reject all not perfectly well formed handles - given that
    we never hand out others that's okay and simplifies the code.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Dave Chinner

    Christoph Hellwig
     

29 Apr, 2008

1 commit

  • Back when I first submitted XFS for mainline inclusion we made the
    decision that the debug code is far to extensive to be accidentally
    enabled by users in mainline. But then again it's often quite useful
    to track problems down and hacking the makefile all the time is rather
    annoying. Given all the debug options with even more overhead like
    lockdep or DEBUG_PAGE_ALLOC users (or rather developers) should know
    by now what they're doing.

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

    Christoph Hellwig
     

18 Apr, 2008

1 commit

  • There is no point to the CONFIG_XFS_SECURITY option; it disables the
    ability to set security attributes at runtime, but it does not actually
    slim down or remove any code for runtime. Just remove it and always allow
    security attributes to be set.

    SGI-PV: 980310
    SGI-Modid: xfs-linux-melb:xfs-kern:30877a

    Signed-off-by: Eric Sandeen
    Signed-off-by: Tim Shimmin
    Signed-off-by: Lachlan McIlroy

    Eric Sandeen
     

01 Oct, 2006

1 commit

  • Make it possible to disable the block layer. Not all embedded devices require
    it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
    the block layer to be present.

    This patch does the following:

    (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
    support.

    (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
    an item that uses the block layer. This includes:

    (*) Block I/O tracing.

    (*) Disk partition code.

    (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.

    (*) The SCSI layer. As far as I can tell, even SCSI chardevs use the
    block layer to do scheduling. Some drivers that use SCSI facilities -
    such as USB storage - end up disabled indirectly from this.

    (*) Various block-based device drivers, such as IDE and the old CDROM
    drivers.

    (*) MTD blockdev handling and FTL.

    (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
    taking a leaf out of JFFS2's book.

    (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
    linux/elevator.h contingent on CONFIG_BLOCK being set. sector_div() is,
    however, still used in places, and so is still available.

    (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
    parts of linux/fs.h.

    (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.

    (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.

    (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
    is not enabled.

    (*) fs/no-block.c is created to hold out-of-line stubs and things that are
    required when CONFIG_BLOCK is not set:

    (*) Default blockdev file operations (to give error ENODEV on opening).

    (*) Makes some /proc changes:

    (*) /proc/devices does not list any blockdevs.

    (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.

    (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.

    (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
    given command other than Q_SYNC or if a special device is specified.

    (*) In init/do_mounts.c, no reference is made to the blockdev routines if
    CONFIG_BLOCK is not defined. This does not prohibit NFS roots or JFFS2.

    (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
    error ENOSYS by way of cond_syscall if so).

    (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
    CONFIG_BLOCK is not set, since they can't then happen.

    Signed-Off-By: David Howells
    Signed-off-by: Jens Axboe

    David Howells
     

19 Jun, 2006

1 commit


13 Jun, 2006

1 commit


03 Nov, 2005

1 commit

  • Cannot build XFS filesystem support as module with quota support. It
    works only when the XFS filesystem support is compiled into the kernel.
    Menuconfig prevents from setting CONFIG_XFS_FS=m and CONFIG_XFS_QUOTA=y.

    How to reproduce: configure the XFS filesystem with quota support as
    module. The resulting kernel won't have quota support compiled into
    xfs.ko.

    Fix: Changing the fs/xfs/Kconfig file from tristate to bool lets you
    configure the quota support to be compiled into the XFS module. The
    Makefile-linux-2.6 checks only for CONFIG_XFS_QUOTA=y.

    Signed-off-by: Dimitri Puzin
    Signed-off-by: Adrian Bunk
    signed-off-by: Andrew Morton
    Signed-off-by: Nathan Scott

    Nathan Scott
     

08 Sep, 2005

1 commit


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