Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 253ba4e7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6

* 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6: (87 commits)
  [XFS] Fix merge failure
  [XFS] The forward declarations for the xfs_ioctl() helpers and the
  [XFS] Update XFS documentation for noikeep/ikeep.
  [XFS] Update XFS Documentation for ikeep and ihashsize
  [XFS] Remove unused HAVE_SPLICE macro.
  [XFS] Remove CONFIG_XFS_SECURITY.
  [XFS] xfs_bmap_compute_maxlevels should be based on di_forkoff
  [XFS] Always use di_forkoff when checking for attr space.
  [XFS] Ensure the inode is joined in xfs_itruncate_finish
  [XFS] Remove periodic logging of in-core superblock counters.
  [XFS] fix logic error in xfs_alloc_ag_vextent_near()
  [XFS] Don't error out on good I/Os.
  [XFS] Catch log unmount failures.
  [XFS] Sanitise xfs_log_force error checking.
  [XFS] Check for errors when changing buffer pointers.
  [XFS] Don't allow silent errors in xfs_inactive().
  [XFS] Catch errors from xfs_imap().
  [XFS] xfs_bulkstat_one_dinode() never returns an error.
  [XFS] xfs_iflush_fork() never returns an error.
  [XFS] Catch unwritten extent conversion errors.
  ...
parents 188da988 65e67f51
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -52,16 +52,15 @@ When mounting an XFS filesystem, the following options are accepted.
	and also gets the setgid bit set if it is a directory itself.

  ihashsize=value
	Sets the number of hash buckets available for hashing the
	in-memory inodes of the specified mount point.  If a value
	of zero is used, the value selected by the default algorithm
	will be displayed in /proc/mounts.
	In memory inode hashes have been removed, so this option has
	no function as of August 2007. Option is deprecated.

  ikeep/noikeep
	When inode clusters are emptied of inodes, keep them around
	on the disk (ikeep) - this is the traditional XFS behaviour
	and is still the default for now.  Using the noikeep option,
	inode clusters are returned to the free space pool.
	When ikeep is specified, XFS does not delete empty inode clusters
	and keeps them around on disk. ikeep is the traditional XFS
	behaviour. When noikeep is specified, empty inode clusters
	are returned to the free space pool. The default is noikeep for
	non-DMAPI mounts, while ikeep is the default when DMAPI is in use.

  inode64
	Indicates that XFS is allowed to create inodes at any location
+0 −12
Original line number Diff line number Diff line
@@ -35,18 +35,6 @@ config XFS_QUOTA
	  with or without the generic quota support enabled (CONFIG_QUOTA) -
	  they are completely independent subsystems.

config XFS_SECURITY
	bool "XFS Security Label support"
	depends on XFS_FS
	help
	  Security labels support alternative access control models
	  implemented by security modules like SELinux.  This option
	  enables an extended attribute namespace for inode security
	  labels in the XFS filesystem.

	  If you are not using a security module that requires using
	  extended attributes for inode security labels, say N.

config XFS_POSIX_ACL
	bool "XFS POSIX ACL support"
	depends on XFS_FS
+3 −3
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ kmem_alloc(size_t size, unsigned int __nocast flags)
#ifdef DEBUG
	if (unlikely(!(flags & KM_LARGE) && (size > PAGE_SIZE))) {
		printk(KERN_WARNING "Large %s attempt, size=%ld\n",
			__FUNCTION__, (long)size);
			__func__, (long)size);
		dump_stack();
	}
#endif
@@ -52,7 +52,7 @@ kmem_alloc(size_t size, unsigned int __nocast flags)
		if (!(++retries % 100))
			printk(KERN_ERR "XFS: possible memory allocation "
					"deadlock in %s (mode:0x%x)\n",
					__FUNCTION__, lflags);
					__func__, lflags);
		congestion_wait(WRITE, HZ/50);
	} while (1);
}
@@ -129,7 +129,7 @@ kmem_zone_alloc(kmem_zone_t *zone, unsigned int __nocast flags)
		if (!(++retries % 100))
			printk(KERN_ERR "XFS: possible memory allocation "
					"deadlock in %s (mode:0x%x)\n",
					__FUNCTION__, lflags);
					__func__, lflags);
		congestion_wait(WRITE, HZ/50);
	} while (1);
}
+8 −4
Original line number Diff line number Diff line
@@ -243,8 +243,12 @@ xfs_end_bio_unwritten(
	size_t			size = ioend->io_size;

	if (likely(!ioend->io_error)) {
		if (!XFS_FORCED_SHUTDOWN(ip->i_mount))
			xfs_iomap_write_unwritten(ip, offset, size);
		if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) {
			int error;
			error = xfs_iomap_write_unwritten(ip, offset, size);
			if (error)
				ioend->io_error = error;
		}
		xfs_setfilesize(ioend);
	}
	xfs_destroy_ioend(ioend);
@@ -1532,9 +1536,9 @@ xfs_vm_bmap(
	struct xfs_inode	*ip = XFS_I(inode);

	xfs_itrace_entry(XFS_I(inode));
	xfs_rwlock(ip, VRWLOCK_READ);
	xfs_ilock(ip, XFS_IOLOCK_SHARED);
	xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF);
	xfs_rwunlock(ip, VRWLOCK_READ);
	xfs_iunlock(ip, XFS_IOLOCK_SHARED);
	return generic_block_bmap(mapping, block, xfs_get_blocks);
}

+4 −4
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ _xfs_buf_lookup_pages(
				printk(KERN_ERR
					"XFS: possible memory allocation "
					"deadlock in %s (mode:0x%x)\n",
					__FUNCTION__, gfp_mask);
					__func__, gfp_mask);

			XFS_STATS_INC(xb_page_retries);
			xfsbufd_wakeup(0, gfp_mask);
@@ -598,7 +598,7 @@ xfs_buf_get_flags(
		error = _xfs_buf_map_pages(bp, flags);
		if (unlikely(error)) {
			printk(KERN_WARNING "%s: failed to map pages\n",
					__FUNCTION__);
					__func__);
			goto no_buffer;
		}
	}
@@ -778,7 +778,7 @@ xfs_buf_get_noaddr(
	error = _xfs_buf_map_pages(bp, XBF_MAPPED);
	if (unlikely(error)) {
		printk(KERN_WARNING "%s: failed to map pages\n",
				__FUNCTION__);
				__func__);
		goto fail_free_mem;
	}

@@ -1060,7 +1060,7 @@ xfs_buf_iostart(
		bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC);
		bp->b_flags |= flags & (XBF_DELWRI | XBF_ASYNC);
		xfs_buf_delwri_queue(bp, 1);
		return status;
		return 0;
	}

	bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \
Loading