]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/xfs/xfs_buf.h
ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
[linux.git] / fs / xfs / xfs_buf.h
index 7f7bd1edd99ef1cdbd2376f3851937e248c92a1a..d79a1fe5d738df70f8b08c453fdcc74c9549e779 100644 (file)
@@ -196,7 +196,7 @@ int xfs_buf_get_map(struct xfs_buftarg *target, struct xfs_buf_map *map,
                int nmaps, xfs_buf_flags_t flags, struct xfs_buf **bpp);
 int xfs_buf_read_map(struct xfs_buftarg *target, struct xfs_buf_map *map,
                int nmaps, xfs_buf_flags_t flags, struct xfs_buf **bpp,
-               const struct xfs_buf_ops *ops);
+               const struct xfs_buf_ops *ops, xfs_failaddr_t fa);
 void xfs_buf_readahead_map(struct xfs_buftarg *target,
                               struct xfs_buf_map *map, int nmaps,
                               const struct xfs_buf_ops *ops);
@@ -213,22 +213,19 @@ xfs_buf_get(
        return xfs_buf_get_map(target, &map, 1, 0, bpp);
 }
 
-static inline struct xfs_buf *
+static inline int
 xfs_buf_read(
        struct xfs_buftarg      *target,
        xfs_daddr_t             blkno,
        size_t                  numblks,
        xfs_buf_flags_t         flags,
+       struct xfs_buf          **bpp,
        const struct xfs_buf_ops *ops)
 {
-       struct xfs_buf          *bp;
-       int                     error;
        DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
 
-       error = xfs_buf_read_map(target, &map, 1, flags, &bp, ops);
-       if (error)
-               return NULL;
-       return bp;
+       return xfs_buf_read_map(target, &map, 1, flags, bpp, ops,
+                       __builtin_return_address(0));
 }
 
 static inline void
@@ -265,7 +262,7 @@ extern void xfs_buf_ioend(struct xfs_buf *bp);
 extern void __xfs_buf_ioerror(struct xfs_buf *bp, int error,
                xfs_failaddr_t failaddr);
 #define xfs_buf_ioerror(bp, err) __xfs_buf_ioerror((bp), (err), __this_address)
-extern void xfs_buf_ioerror_alert(struct xfs_buf *, const char *func);
+extern void xfs_buf_ioerror_alert(struct xfs_buf *bp, xfs_failaddr_t fa);
 
 extern int __xfs_buf_submit(struct xfs_buf *bp, bool);
 static inline int xfs_buf_submit(struct xfs_buf *bp)