]> git.karo-electronics.de Git - linux-beck.git/commitdiff
xfs: remove prev argument to xfs_bmapi_reserve_delalloc
authorChristoph Hellwig <hch@lst.de>
Mon, 9 Jan 2017 15:38:42 +0000 (16:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 10:39:41 +0000 (11:39 +0100)
commit 65c5f419788d623a0410eca1866134f5e4628594 upstream.

We can easily lookup the previous extent for the cases where we need it,
which saves the callers from looking it up for us later in the series.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/libxfs/xfs_bmap.h
fs/xfs/xfs_iomap.c
fs/xfs/xfs_reflink.c

index 00188f559c8d75fd0d51fa463287df7f8be2fd52..09b5d4f0763645f524550bf6c5be19685e1a9175 100644 (file)
@@ -4250,7 +4250,6 @@ xfs_bmapi_reserve_delalloc(
        xfs_fileoff_t           aoff,
        xfs_filblks_t           len,
        struct xfs_bmbt_irec    *got,
-       struct xfs_bmbt_irec    *prev,
        xfs_extnum_t            *lastx,
        int                     eof)
 {
@@ -4272,7 +4271,12 @@ xfs_bmapi_reserve_delalloc(
        else
                extsz = xfs_get_extsz_hint(ip);
        if (extsz) {
-               error = xfs_bmap_extsize_align(mp, got, prev, extsz, rt, eof,
+               struct xfs_bmbt_irec    prev;
+
+               if (!xfs_iext_get_extent(ifp, *lastx - 1, &prev))
+                       prev.br_startoff = NULLFILEOFF;
+
+               error = xfs_bmap_extsize_align(mp, got, &prev, extsz, rt, eof,
                                               1, 0, &aoff, &alen);
                ASSERT(!error);
        }
index 7cae6ec27fa6b26a84984fddb3dc35d6556e2122..e3c2b5adf505300a1115317b0014d5995081d51c 100644 (file)
@@ -243,8 +243,7 @@ struct xfs_bmbt_rec_host *
                struct xfs_bmbt_irec *gotp, struct xfs_bmbt_irec *prevp);
 int    xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
                xfs_fileoff_t aoff, xfs_filblks_t len,
-               struct xfs_bmbt_irec *got, struct xfs_bmbt_irec *prev,
-               xfs_extnum_t *lastx, int eof);
+               struct xfs_bmbt_irec *got, xfs_extnum_t *lastx, int eof);
 
 enum xfs_bmap_intent_type {
        XFS_BMAP_MAP = 1,
index 436e109bb01e59d32bda87e9dd43ab3229cba509..59ffcac8a47df8c07795f137b6b6f4810d2d2b50 100644 (file)
@@ -622,8 +622,7 @@ xfs_file_iomap_begin_delay(
 
 retry:
        error = xfs_bmapi_reserve_delalloc(ip, XFS_DATA_FORK, offset_fsb,
-                       end_fsb - offset_fsb, &got,
-                       &prev, &idx, eof);
+                       end_fsb - offset_fsb, &got, &idx, eof);
        switch (error) {
        case 0:
                break;
index 4d99100a4bbf7d3344faaf99d2a2b0addc3266e6..ae17b81e70534dd6bc0ffdcc49a7215452c064ef 100644 (file)
@@ -293,7 +293,7 @@ xfs_reflink_reserve_cow(
 
 retry:
        error = xfs_bmapi_reserve_delalloc(ip, XFS_COW_FORK, imap->br_startoff,
-                       end_fsb - imap->br_startoff, &got, &prev, &idx, eof);
+                       end_fsb - imap->br_startoff, &got, &idx, eof);
        switch (error) {
        case 0:
                break;