All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Tinguely <tinguely@sgi.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 32/49] xfs: create xfs_bmap_util.[ch]
Date: Tue, 06 Aug 2013 10:13:02 -0500	[thread overview]
Message-ID: <5201127E.9010809@sgi.com> (raw)
In-Reply-To: <1374216324-8781-33-git-send-email-david@fromorbit.com>

On 07/19/13 01:45, Dave Chinner wrote:
> From: Dave Chinner<dchinner@redhat.com>
>
> There is a bunch of code in xfs_bmap.c that is kernel specific and
> not shared with userspace. to minimise the difference between the
> kernel and userspace code, shift this unshared code to
> xfs_bmap_util.c, and the declarations to xfs_bmap_util.h.
>
> The biggest issue here is xfs_bmap_finish() - userspce has it's own
> definition of this function, and so we need to move it out of
> xfs_bmap.[ch]. This means several other files need to include
> xfs_bmap_util.c as well.
>
> It also introduces and interesting dance for the stack switching
> code in xfs_bmapi_allocate(). The stack switching/workqueue code is
> actually moved to xfs_bmap_util.c, so that userspace can simply use
> a #define in a header file to connect the dots without needing to
> know about the stack switch code at all.
>
> Signed-off-by: Dave Chinner<dchinner@redhat.com>
> ---
>   include/xfs_bmap.h |  51 ------------
>   libxfs/xfs.h       |  34 ++++++++
>   libxfs/xfs_bmap.c  | 222 +++--------------------------------------------------
>   3 files changed, 43 insertions(+), 264 deletions(-)
>
> diff --git a/include/xfs_bmap.h b/include/xfs_bmap.h
> index ffa67b1..8b2fe97 100644
> --- a/include/xfs_bmap.h
> +++ b/include/xfs_bmap.h
> @@ -108,38 +108,6 @@ static inline void xfs_bmap_init(xfs_bmap_free_t *flp, xfs_fsblock_t *fbp)
>   }
>
>   /*
> - * Argument structure for xfs_bmap_alloc.
> - */
> -typedef struct xfs_bmalloca {
> -	xfs_fsblock_t		*firstblock; /* i/o first block allocated */
> -	struct xfs_bmap_free	*flist;	/* bmap freelist */
> -	struct xfs_trans	*tp;	/* transaction pointer */
> -	struct xfs_inode	*ip;	/* incore inode pointer */
> -	struct xfs_bmbt_irec	prev;	/* extent before the new one */
> -	struct xfs_bmbt_irec	got;	/* extent after, or delayed */
> -
> -	xfs_fileoff_t		offset;	/* offset in file filling in */
> -	xfs_extlen_t		length;	/* i/o length asked/allocated */
> -	xfs_fsblock_t		blkno;	/* starting block of new extent */
> -
> -	struct xfs_btree_cur	*cur;	/* btree cursor */
> -	xfs_extnum_t		idx;	/* current extent index */
> -	int			nallocs;/* number of extents alloc'd */
> -	int			logflags;/* flags for transaction logging */
> -
> -	xfs_extlen_t		total;	/* total blocks needed for xaction */
> -	xfs_extlen_t		minlen;	/* minimum allocation size (blocks) */
> -	xfs_extlen_t		minleft; /* amount must be left after alloc */
> -	char			eof;	/* set if allocating past last extent */
> -	char			wasdel;	/* replacing a delayed allocation */
> -	char			userdata;/* set if is user data */
> -	char			aeof;	/* allocated space at eof */
> -	char			conv;	/* overwriting unwritten extents */
> -	int			flags;
> -	int			stack_switch;
> -} xfs_bmalloca_t;
> -
> -/*
>    * Flags for xfs_bmap_add_extent*.
>    */
>   #define BMAP_LEFT_CONTIG	(1<<  0)
> @@ -202,23 +170,4 @@ int	xfs_check_nostate_extents(struct xfs_ifork *ifp, xfs_extnum_t idx,
>   		xfs_extnum_t num);
>   uint	xfs_default_attroffset(struct xfs_inode *ip);
>
> -#ifdef __KERNEL__
> -/* bmap to userspace formatter - copy to user&  advance pointer */
> -typedef int (*xfs_bmap_format_t)(void **, struct getbmapx *, int *);
> -
> -int	xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist,
> -		int *committed);
> -int	xfs_getbmap(struct xfs_inode *ip, struct getbmapx *bmv,
> -		xfs_bmap_format_t formatter, void *arg);
> -int	xfs_bmap_eof(struct xfs_inode *ip, xfs_fileoff_t endoff,
> -		int whichfork, int *eof);
> -int	xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip,
> -		int whichfork, int *count);
> -int	xfs_bmap_punch_delalloc_range(struct xfs_inode *ip,
> -		xfs_fileoff_t start_fsb, xfs_fileoff_t length);
> -
> -xfs_daddr_t xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb);
> -
> -#endif	/* __KERNEL__ */
> -
>   #endif	/* __XFS_BMAP_H__ */
> diff --git a/libxfs/xfs.h b/libxfs/xfs.h
> index 0113b50..276fc25 100644
> --- a/libxfs/xfs.h
> +++ b/libxfs/xfs.h
> @@ -51,6 +51,40 @@
>   typedef __uint32_t		uint_t;
>   typedef __uint32_t		inst_t;		/* an instruction */
>
> +/*
> + * Argument structure for xfs_bmap_alloc.
> + */
> +typedef struct xfs_bmalloca {
> +	xfs_fsblock_t		*firstblock; /* i/o first block allocated */
> +	struct xfs_bmap_free    *flist;	/* bmap freelist */
> +	struct xfs_trans        *tp;	/* transaction pointer */
> +	struct xfs_inode        *ip;	/* incore inode pointer */
> +	struct xfs_bmbt_irec    prev;	/* extent before the new one */
> +	struct xfs_bmbt_irec    got;	/* extent after, or delayed */
> +
> +	xfs_fileoff_t		offset;	/* offset in file filling in */
> +	xfs_extlen_t		length;	/* i/o length asked/allocated */
> +	xfs_fsblock_t		blkno;	/* starting block of new extent */
> +
> +	struct xfs_btree_cur    *cur;	/* btree cursor */
> +	xfs_extnum_t		idx;	/* current extent index */
> +	int			nallocs;/* number of extents alloc'd */
> +	int			logflags;/* flags for transaction logging */
> +
> +	xfs_extlen_t		total;	/* total blocks needed for xaction */
> +	xfs_extlen_t		minlen;	/* minimum allocation size (blocks) */
> +	xfs_extlen_t		minleft; /* amount must be left after alloc */
> +	char			eof;	/* set if allocating past last extent */
> +	char			wasdel;	/* replacing a delayed allocation */
> +	char			userdata;/* set if is user data */
> +	char			aeof;	/* allocated space at eof */
> +	char			conv;	/* overwriting unwritten extents */
> +	char			stack_switch;
> +	int			flags;
> +} xfs_bmalloca_t;
> +
> +#define xfs_bmapi_allocate		__xfs_bmapi_allocate
> +
>   #ifndef EWRONGFS
>   #define EWRONGFS	EINVAL
>   #endif
> diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c
> index ce72b87..eeaea94 100644
> --- a/libxfs/xfs_bmap.c
> +++ b/libxfs/xfs_bmap.c
> @@ -74,19 +74,6 @@ xfs_bmap_compute_maxlevels(
>   	mp->m_bm_maxlevels[whichfork] = level;
>   }
>
> -/*
> - * Convert the given file system block to a disk block.  We have to treat it
> - * differently based on whether the file is a real time file or not, because the
> - * bmap code does.
> - */
> -xfs_daddr_t
> -xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb)
> -{
> -	return (XFS_IS_REALTIME_INODE(ip) ? \
> -		 (xfs_daddr_t)XFS_FSB_TO_BB((ip)->i_mount, (fsb)) : \
> -		 XFS_FSB_TO_DADDR((ip)->i_mount, (fsb)));
> -}
> -
>   STATIC int				/* error */
>   xfs_bmbt_lookup_eq(
>   	struct xfs_btree_cur	*cur,
> @@ -229,173 +216,6 @@ xfs_bmap_forkoff_reset(
>   }
>
>   /*
> - * Extent tree block counting routines.
> - */
> -
> -/*
> - * Count leaf blocks given a range of extent records.
> - */
> -STATIC void
> -xfs_bmap_count_leaves(
> -	xfs_ifork_t		*ifp,
> -	xfs_extnum_t		idx,
> -	int			numrecs,
> -	int			*count)
> -{
> -	int		b;
> -
> -	for (b = 0; b<  numrecs; b++) {
> -		xfs_bmbt_rec_host_t *frp = xfs_iext_get_ext(ifp, idx + b);
> -		*count += xfs_bmbt_get_blockcount(frp);
> -	}
> -}
> -
> -/*
> - * Count leaf blocks given a range of extent records originally
> - * in btree format.
> - */
> -STATIC void
> -xfs_bmap_disk_count_leaves(
> -	struct xfs_mount	*mp,
> -	struct xfs_btree_block	*block,
> -	int			numrecs,
> -	int			*count)
> -{
> -	int		b;
> -	xfs_bmbt_rec_t	*frp;
> -
> -	for (b = 1; b<= numrecs; b++) {
> -		frp = XFS_BMBT_REC_ADDR(mp, block, b);
> -		*count += xfs_bmbt_disk_get_blockcount(frp);
> -	}
> -}
> -
> -/*
> - * Recursively walks each level of a btree
> - * to count total fsblocks is use.
> - */
> -STATIC int                                     /* error */
> -xfs_bmap_count_tree(
> -	xfs_mount_t     *mp,            /* file system mount point */
> -	xfs_trans_t     *tp,            /* transaction pointer */
> -	xfs_ifork_t	*ifp,		/* inode fork pointer */
> -	xfs_fsblock_t   blockno,	/* file system block number */
> -	int             levelin,	/* level in btree */
> -	int		*count)		/* Count of blocks */
> -{
> -	int			error;
> -	xfs_buf_t		*bp, *nbp;
> -	int			level = levelin;
> -	__be64			*pp;
> -	xfs_fsblock_t           bno = blockno;
> -	xfs_fsblock_t		nextbno;
> -	struct xfs_btree_block	*block, *nextblock;
> -	int			numrecs;
> -
> -	error = xfs_btree_read_bufl(mp, tp, bno, 0,&bp, XFS_BMAP_BTREE_REF,
> -						&xfs_bmbt_buf_ops);
> -	if (error)
> -		return error;
> -	*count += 1;
> -	block = XFS_BUF_TO_BLOCK(bp);
> -
> -	if (--level) {
> -		/* Not at node above leaves, count this level of nodes */
> -		nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib);
> -		while (nextbno != NULLFSBLOCK) {
> -			error = xfs_btree_read_bufl(mp, tp, nextbno, 0,&nbp,
> -						XFS_BMAP_BTREE_REF,
> -						&xfs_bmbt_buf_ops);
> -			if (error)
> -				return error;
> -			*count += 1;
> -			nextblock = XFS_BUF_TO_BLOCK(nbp);
> -			nextbno = be64_to_cpu(nextblock->bb_u.l.bb_rightsib);
> -			xfs_trans_brelse(tp, nbp);
> -		}
> -
> -		/* Dive to the next level */
> -		pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]);
> -		bno = be64_to_cpu(*pp);
> -		if (unlikely((error =
> -		     xfs_bmap_count_tree(mp, tp, ifp, bno, level, count))<  0)) {
> -			xfs_trans_brelse(tp, bp);
> -			XFS_ERROR_REPORT("xfs_bmap_count_tree(1)",
> -					 XFS_ERRLEVEL_LOW, mp);
> -			return XFS_ERROR(EFSCORRUPTED);
> -		}
> -		xfs_trans_brelse(tp, bp);
> -	} else {
> -		/* count all level 1 nodes and their leaves */
> -		for (;;) {
> -			nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib);
> -			numrecs = be16_to_cpu(block->bb_numrecs);
> -			xfs_bmap_disk_count_leaves(mp, block, numrecs, count);
> -			xfs_trans_brelse(tp, bp);
> -			if (nextbno == NULLFSBLOCK)
> -				break;
> -			bno = nextbno;
> -			error = xfs_btree_read_bufl(mp, tp, bno, 0,&bp,
> -						XFS_BMAP_BTREE_REF,
> -						&xfs_bmbt_buf_ops);
> -			if (error)
> -				return error;
> -			*count += 1;
> -			block = XFS_BUF_TO_BLOCK(bp);
> -		}
> -	}
> -	return 0;
> -}
> -
> -/*
> - * Count fsblocks of the given fork.
> - */
> -int						/* error */
> -xfs_bmap_count_blocks(
> -	xfs_trans_t		*tp,		/* transaction pointer */
> -	xfs_inode_t		*ip,		/* incore inode */
> -	int			whichfork,	/* data or attr fork */
> -	int			*count)		/* out: count of blocks */
> -{
> -	struct xfs_btree_block	*block;	/* current btree block */
> -	xfs_fsblock_t		bno;	/* block # of "block" */
> -	xfs_ifork_t		*ifp;	/* fork structure */
> -	int			level;	/* btree level, for checking */
> -	xfs_mount_t		*mp;	/* file system mount structure */
> -	__be64			*pp;	/* pointer to block address */
> -
> -	bno = NULLFSBLOCK;
> -	mp = ip->i_mount;
> -	ifp = XFS_IFORK_PTR(ip, whichfork);
> -	if ( XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_EXTENTS ) {
> -		xfs_bmap_count_leaves(ifp, 0,
> -			ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t),
> -			count);
> -		return 0;
> -	}
> -
> -	/*
> -	 * Root level must use BMAP_BROOT_PTR_ADDR macro to get ptr out.
> -	 */
> -	block = ifp->if_broot;
> -	level = be16_to_cpu(block->bb_level);
> -	ASSERT(level>  0);
> -	pp = XFS_BMAP_BROOT_PTR_ADDR(mp, block, 1, ifp->if_broot_bytes);
> -	bno = be64_to_cpu(*pp);
> -	ASSERT(bno != NULLDFSBNO);
> -	ASSERT(XFS_FSB_TO_AGNO(mp, bno)<  mp->m_sb.sb_agcount);
> -	ASSERT(XFS_FSB_TO_AGBNO(mp, bno)<  mp->m_sb.sb_agblocks);
> -
> -	if (unlikely(xfs_bmap_count_tree(mp, tp, ifp, bno, level, count)<  0)) {
> -		XFS_ERROR_REPORT("xfs_bmap_count_blocks(2)", XFS_ERRLEVEL_LOW,
> -				 mp);
> -		return XFS_ERROR(EFSCORRUPTED);
> -	}
> -
> -	return 0;
> -}
> -
> -/*
>    * Debug/sanity checking code
>    */
>
> @@ -803,7 +623,6 @@ xfs_bmap_del_free(
>   	kmem_zone_free(xfs_bmap_free_item_zone, free);
>   }
>
> -
>   /*
>    * Free up any items left in the list.
>    */
> @@ -1028,8 +847,8 @@ xfs_bmap_extents_to_btree(
>   	 * Do all this logging at the end so that
>   	 * the root is at the right level.
>   	 */
> -	xfs_btree_log_recs(cur, abp, 1, be16_to_cpu(ablock->bb_numrecs));
>   	xfs_btree_log_block(cur, abp, XFS_BB_ALL_BITS);
> +	xfs_btree_log_recs(cur, abp, 1, be16_to_cpu(ablock->bb_numrecs));
>   	ASSERT(*curp == NULL);
>   	*curp = cur;
>   	*logflagsp = XFS_ILOG_CORE | xfs_ilog_fbroot(whichfork);
> @@ -1744,7 +1563,7 @@ xfs_bmap_last_before(
>   	return 0;
>   }
>
> -STATIC int
> +int
>   xfs_bmap_last_extent(
>   	struct xfs_trans	*tp,
>   	struct xfs_inode	*ip,
> @@ -1808,29 +1627,6 @@ xfs_bmap_isaeof(
>   }
>
>   /*
> - * Check if the endoff is outside the last extent. If so the caller will grow
> - * the allocation to a stripe unit boundary.  All offsets are considered outside
> - * the end of file for an empty fork, so 1 is returned in *eof in that case.
> - */
> -int
> -xfs_bmap_eof(
> -	struct xfs_inode	*ip,
> -	xfs_fileoff_t		endoff,
> -	int			whichfork,
> -	int			*eof)
> -{
> -	struct xfs_bmbt_irec	rec;
> -	int			error;
> -
> -	error = xfs_bmap_last_extent(NULL, ip, whichfork,&rec, eof);
> -	if (error || *eof)
> -		return error;
> -
> -	*eof = endoff>= rec.br_startoff + rec.br_blockcount;
> -	return 0;
> -}
> -
> -/*
>    * Returns the file-relative block number of the first block past eof in
>    * the file.  This is not based on i_size, it is based on the extent records.
>    * Returns 0 for local files, as they do not have extent records.
> @@ -3369,7 +3165,7 @@ done:
>   /*
>    * Adjust the size of the new extent based on di_extsize and rt extsize.
>    */
> -STATIC int
> +int
>   xfs_bmap_extsize_align(
>   	xfs_mount_t	*mp,
>   	xfs_bmbt_irec_t	*gotp,		/* next extent pointer */
> @@ -3531,9 +3327,9 @@ xfs_bmap_extsize_align(
>
>   #define XFS_ALLOC_GAP_UNITS	4
>
> -STATIC void
> +void
>   xfs_bmap_adjacent(
> -	xfs_bmalloca_t	*ap)		/* bmap alloc argument struct */
> +	struct xfs_bmalloca	*ap)	/* bmap alloc argument struct */
>   {
>   	xfs_fsblock_t	adjust;		/* adjustment to block numbers */
>   	xfs_agnumber_t	fb_agno;	/* ag number of ap->firstblock */
> @@ -3796,7 +3592,7 @@ xfs_bmap_btalloc_nullfb(
>
>   STATIC int
>   xfs_bmap_btalloc(
> -	xfs_bmalloca_t	*ap)		/* bmap alloc argument struct */
> +	struct xfs_bmalloca	*ap)	/* bmap alloc argument struct */
>   {
>   	xfs_mount_t	*mp;		/* mount point structure */
>   	xfs_alloctype_t	atype = 0;	/* type for allocation routines */
> @@ -4028,7 +3824,7 @@ xfs_bmap_btalloc(
>    */
>   STATIC int
>   xfs_bmap_alloc(
> -	xfs_bmalloca_t	*ap)		/* bmap alloc argument struct */
> +	struct xfs_bmalloca	*ap)	/* bmap alloc argument struct */
>   {
>   	if (XFS_IS_REALTIME_INODE(ap->ip)&&  ap->userdata)
>   		return xfs_bmap_rtalloc(ap);
> @@ -4416,8 +4212,8 @@ xfs_bmapi_delay(
>   }
>
>
> -STATIC int
> -xfs_bmapi_allocate(
> +int
> +__xfs_bmapi_allocate(
>   	struct xfs_bmalloca	*bma)
>   {
>   	struct xfs_mount	*mp = bma->ip->i_mount;

  matches kernel patch 21/49.

  __xfs_bmapi_allocate() in xfs_bmap.c has an extra rt variable in the
  kernel file that is not in the user file. variable is not used adn
  should be removed in the kernel too.

--Mark.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2013-08-06 15:13 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19  6:44 [PATCH 00/49] xfsprogs: patches for crc-dev branch Dave Chinner
2013-07-19  6:44 ` [PATCH 01/49] xfsprogs: introduce xfs_icreate.h Dave Chinner
2013-08-01 18:07   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 02/49] xfsprogs: port inode create transaction changes Dave Chinner
2013-08-01 19:01   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 03/49] xfsprogs: teach logprint about icreate transaction Dave Chinner
2013-08-01 21:30   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 04/49] libxfs: fix directory/attribute format issues Dave Chinner
2013-08-02 13:10   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 05/49] libxfs: ensure btree root split sets blkno correctly Dave Chinner
2013-08-02 13:12   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 06/49] libxfs: fix byte swapping on constants Dave Chinner
2013-08-02 13:51   ` Mark Tinguely
2013-08-12  0:03     ` ***** SUSPECTED SPAM ***** " Dave Chinner
2013-07-19  6:44 ` [PATCH 07/49] libxfs: sync xfs_da_btree.c Dave Chinner
2013-08-02 14:22   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 08/49] libxfs: update xfs_alloc to current kernel version Dave Chinner
2013-08-02 15:11   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 09/49] libxfs: sync attr code with kernel Dave Chinner
2013-08-02 16:02   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 10/49] libxfs: sync dir2 kernel differences Dave Chinner
2013-08-02 16:25   ` Mark Tinguely
2013-08-08 22:04   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 11/49] libxfs: sync xfs_ialloc.c to the kernel code Dave Chinner
2013-08-02 18:08   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 12/49] xfsprogs: define min/max once and use them everywhere Dave Chinner
2013-08-02 18:42   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 13/49] libxfs: fix compile warnings Dave Chinner
2013-08-02 21:13   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 14/49] xfs: remove local fork format handling from xfs_bmapi_write() Dave Chinner
2013-08-02 21:42   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 15/49] libxfs: local to remote format support of remote symlinks Dave Chinner
2013-08-02 22:22   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 16/49] xfs: separate out log format definitions Dave Chinner
2013-08-03 15:15   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 17/49] xfs: split out inode log item format definition Dave Chinner
2013-08-03 15:23   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 18/49] xfs: split out buf log item format definitions Dave Chinner
2013-08-04 23:37   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 19/49] xfs: split out inode log item format definition Dave Chinner
2013-08-04 23:41   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 20/49] xfs: separate dquot on disk format definitions out of xfs_quota.h Dave Chinner
2013-08-05 14:18   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 21/49] xfs: separate icreate log format definitions from xfs_icreate_item.h Dave Chinner
2013-08-05 14:27   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 22/49] xfs: split out on-disk transaction definitions Dave Chinner
2013-08-05 15:22   ` Mark Tinguely
2013-08-05 15:24     ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 23/49] xfs: introduce xfs_rtalloc_defs.h Dave Chinner
2013-08-05 18:53   ` Mark Tinguely
2013-07-19  6:44 ` [PATCH 24/49] xfs: introduce xfs_quota_defs.h Dave Chinner
2013-08-05 19:09   ` Mark Tinguely
2013-08-12  0:24     ` ***** SUSPECTED SPAM ***** " Dave Chinner
2013-07-19  6:45 ` [PATCH 25/49] libxfs: introduce xfs_trans_resv.c Dave Chinner
2013-08-05 20:16   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 26/49] libxfs: move transaction code to trans.c Dave Chinner
2013-08-05 20:51   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 27/49] xfs: move inode fork definitions to a new header file Dave Chinner
2013-08-05 21:39   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 28/49] xfs: move unrealted definitions out of xfs_inode.h Dave Chinner
2013-08-05 21:57   ` Mark Tinguely
2013-08-12  0:30     ` ***** SUSPECTED SPAM ***** " Dave Chinner
2013-07-19  6:45 ` [PATCH 29/49] xfs: introduce xfs_inode_buf.c for inode buffer operations Dave Chinner
2013-08-06 13:25   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 30/49] xfs: split out the remote symlink handling Dave Chinner
2013-07-19  6:45 ` [PATCH 31/49] libxfs: switch over to xfs_sb.c and remove xfs_mount.c Dave Chinner
2013-07-19  6:45 ` [PATCH 32/49] xfs: create xfs_bmap_util.[ch] Dave Chinner
2013-08-06 15:13   ` Mark Tinguely [this message]
2013-07-19  6:45 ` [PATCH 33/49] xfsprogs: sync minor kernel header differences Dave Chinner
2013-08-06 15:26   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 34/49] xfs: don't special case shared superblock mounts Dave Chinner
2013-08-06 15:33   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 35/49] xfs: move swap extent code to xfs_extent_ops Dave Chinner
2013-08-06 15:41   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 36/49] xfs: kill __KERNEL__ check for debug code in allocation code Dave Chinner
2013-08-06 15:52   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 37/49] xfs: remove __KERNEL__ from debug code Dave Chinner
2013-08-06 16:07   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 38/49] xfs: remove __KERNEL__ check from xfs_dir2_leaf.c Dave Chinner
2013-08-06 16:12   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 39/49] xfs: move kernel specific type definitions to xfs.h Dave Chinner
2013-08-06 16:16   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 40/49] xfs: make struct xfs_perag kernel only Dave Chinner
2013-08-06 16:28   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 41/49] xfs: Introduce a new structure to hold transaction reservation items Dave Chinner
2013-08-06 18:23   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 42/49] xfs: Introduce tr_fsyncts to m_reservation Dave Chinner
2013-08-06 18:33   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 43/49] xfs: Make writeid transaction use tr_writeid Dave Chinner
2013-08-06 18:38   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 44/49] xfs: refactor xfs_trans_reserve() interface Dave Chinner
2013-08-06 19:12   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 45/49] xfs: Get rid of all XFS_XXX_LOG_RES() macro Dave Chinner
2013-08-06 19:23   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 46/49] xfs: Add xfs_log_rlimit.c Dave Chinner
2013-08-06 20:31   ` Mark Tinguely
2013-07-19  6:45 ` [PATCH 47/49] xfs: Add read-only support for dirent filetype field Dave Chinner
2013-08-06 21:13   ` Mark Tinguely
2013-08-12  0:33     ` ***** SUSPECTED SPAM ***** " Dave Chinner
2013-07-19  6:45 ` [PATCH 48/49] xfs: Add write " Dave Chinner
2013-07-19  6:45 ` [PATCH 49/49] xfsprogs: add dtype support to mkfs and db Dave Chinner
2013-07-21  6:34 ` [PATCH 00/49] xfsprogs: patches for crc-dev branch Michael L. Semon
2013-07-22 23:32   ` Dave Chinner
2013-07-23  3:36     ` Michael L. Semon
2013-07-23  4:44       ` Dave Chinner
2013-07-23 21:02         ` Michael L. Semon
2013-07-24  3:52           ` Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5201127E.9010809@sgi.com \
    --to=tinguely@sgi.com \
    --cc=david@fromorbit.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.