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

Commit 8769e078 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-v3.10-rc1-2' of git://oss.sgi.com/xfs/xfs

Pull xfs update (#2) from Ben Myers:

 - add CONFIG_XFS_WARN, a step between zero debugging and
   CONFIG_XFS_DEBUG.

 - fix attrmulti and attrlist to fall back to vmalloc when kmalloc
   fails.

* tag 'for-linus-v3.10-rc1-2' of git://oss.sgi.com/xfs/xfs:
  xfs: fallback to vmalloc for large buffers in xfs_compat_attrlist_by_handle
  xfs: fallback to vmalloc for large buffers in xfs_attrlist_by_handle
  xfs: introduce CONFIG_XFS_WARN
parents 8cbc95ee 7dfbcbef
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -69,6 +69,19 @@ config XFS_RT


	  If unsure, say N.
	  If unsure, say N.


config XFS_WARN
	bool "XFS Verbose Warnings"
	depends on XFS_FS && !XFS_DEBUG
	help
	  Say Y here to get an XFS build with many additional warnings.
	  It converts ASSERT checks to WARN, so will log any out-of-bounds
	  conditions that occur that would otherwise be missed. It is much
	  lighter weight than XFS_DEBUG and does not modify algorithms and will
	  not cause the kernel to panic on non-fatal errors.

	  However, similar to XFS_DEBUG, it is only advisable to use this if you
	  are debugging a particular problem.

config XFS_DEBUG
config XFS_DEBUG
	bool "XFS Debugging support"
	bool "XFS Debugging support"
	depends on XFS_FS
	depends on XFS_FS
+6 −6
Original line number Original line Diff line number Diff line
@@ -22,12 +22,12 @@


typedef struct {
typedef struct {
	struct rw_semaphore	mr_lock;
	struct rw_semaphore	mr_lock;
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	int			mr_writer;
	int			mr_writer;
#endif
#endif
} mrlock_t;
} mrlock_t;


#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
#define mrinit(mrp, name)	\
#define mrinit(mrp, name)	\
	do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
	do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
#else
#else
@@ -46,7 +46,7 @@ static inline void mraccess_nested(mrlock_t *mrp, int subclass)
static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
{
{
	down_write_nested(&mrp->mr_lock, subclass);
	down_write_nested(&mrp->mr_lock, subclass);
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	mrp->mr_writer = 1;
	mrp->mr_writer = 1;
#endif
#endif
}
}
@@ -60,7 +60,7 @@ static inline int mrtryupdate(mrlock_t *mrp)
{
{
	if (!down_write_trylock(&mrp->mr_lock))
	if (!down_write_trylock(&mrp->mr_lock))
		return 0;
		return 0;
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	mrp->mr_writer = 1;
	mrp->mr_writer = 1;
#endif
#endif
	return 1;
	return 1;
@@ -68,7 +68,7 @@ static inline int mrtryupdate(mrlock_t *mrp)


static inline void mrunlock_excl(mrlock_t *mrp)
static inline void mrunlock_excl(mrlock_t *mrp)
{
{
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	mrp->mr_writer = 0;
	mrp->mr_writer = 0;
#endif
#endif
	up_write(&mrp->mr_lock);
	up_write(&mrp->mr_lock);
@@ -81,7 +81,7 @@ static inline void mrunlock_shared(mrlock_t *mrp)


static inline void mrdemote(mrlock_t *mrp)
static inline void mrdemote(mrlock_t *mrp)
{
{
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	mrp->mr_writer = 0;
	mrp->mr_writer = 0;
#endif
#endif
	downgrade_write(&mrp->mr_lock);
	downgrade_write(&mrp->mr_lock);
+5 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,11 @@
#define XFS_BUF_LOCK_TRACKING 1
#define XFS_BUF_LOCK_TRACKING 1
#endif
#endif


#ifdef CONFIG_XFS_WARN
#define XFS_WARN 1
#endif


#include "xfs_linux.h"
#include "xfs_linux.h"


#endif	/* __XFS_H__ */
#endif	/* __XFS_H__ */
+2 −2
Original line number Original line Diff line number Diff line
@@ -386,7 +386,7 @@ const struct xfs_buf_ops xfs_allocbt_buf_ops = {
};
};




#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
STATIC int
STATIC int
xfs_allocbt_keys_inorder(
xfs_allocbt_keys_inorder(
	struct xfs_btree_cur	*cur,
	struct xfs_btree_cur	*cur,
@@ -442,7 +442,7 @@ static const struct xfs_btree_ops xfs_allocbt_ops = {
	.init_ptr_from_cur	= xfs_allocbt_init_ptr_from_cur,
	.init_ptr_from_cur	= xfs_allocbt_init_ptr_from_cur,
	.key_diff		= xfs_allocbt_key_diff,
	.key_diff		= xfs_allocbt_key_diff,
	.buf_ops		= &xfs_allocbt_buf_ops,
	.buf_ops		= &xfs_allocbt_buf_ops,
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	.keys_inorder		= xfs_allocbt_keys_inorder,
	.keys_inorder		= xfs_allocbt_keys_inorder,
	.recs_inorder		= xfs_allocbt_recs_inorder,
	.recs_inorder		= xfs_allocbt_recs_inorder,
#endif
#endif
+2 −2
Original line number Original line Diff line number Diff line
@@ -813,7 +813,7 @@ const struct xfs_buf_ops xfs_bmbt_buf_ops = {
};
};




#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
STATIC int
STATIC int
xfs_bmbt_keys_inorder(
xfs_bmbt_keys_inorder(
	struct xfs_btree_cur	*cur,
	struct xfs_btree_cur	*cur,
@@ -853,7 +853,7 @@ static const struct xfs_btree_ops xfs_bmbt_ops = {
	.init_ptr_from_cur	= xfs_bmbt_init_ptr_from_cur,
	.init_ptr_from_cur	= xfs_bmbt_init_ptr_from_cur,
	.key_diff		= xfs_bmbt_key_diff,
	.key_diff		= xfs_bmbt_key_diff,
	.buf_ops		= &xfs_bmbt_buf_ops,
	.buf_ops		= &xfs_bmbt_buf_ops,
#ifdef DEBUG
#if defined(DEBUG) || defined(XFS_WARN)
	.keys_inorder		= xfs_bmbt_keys_inorder,
	.keys_inorder		= xfs_bmbt_keys_inorder,
	.recs_inorder		= xfs_bmbt_recs_inorder,
	.recs_inorder		= xfs_bmbt_recs_inorder,
#endif
#endif
Loading