aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2008-04-09 22:22:17 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-04-17 22:00:24 -0400
commitd64e31a2f53cdcb2f95b782196faacb0995ca0c0 (patch)
treed13230aeeb739f263305c686168823e161bdf619 /fs/xfs/linux-2.6
parent556b8b166c9514b5f940047a41dad8fe8cd9a778 (diff)
[XFS] Ensure errors from xfs_bdstrat() are correctly checked.
xfsbdstrat() is declared to return an error. That is never checked because the error is propagated by the xfs_buf_t that is passed through the function. Mark xfsbdstrat() as returning void and comment the prototype on the methods needed for error checking. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30823a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Niv Sardi <xaiki@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6')
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.c19
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.h3
2 files changed, 8 insertions, 14 deletions
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c
index 1d95dca96cfe..f6dab5d8944e 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.c
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
@@ -875,28 +875,21 @@ xfs_bdstrat_cb(struct xfs_buf *bp)
875} 875}
876 876
877/* 877/*
878 * Wrapper around bdstrat so that we can stop data 878 * Wrapper around bdstrat so that we can stop data from going to disk in case
879 * from going to disk in case we are shutting down the filesystem. 879 * we are shutting down the filesystem. Typically user data goes thru this
880 * Typically user data goes thru this path; one of the exceptions 880 * path; one of the exceptions is the superblock.
881 * is the superblock.
882 */ 881 */
883int 882void
884xfsbdstrat( 883xfsbdstrat(
885 struct xfs_mount *mp, 884 struct xfs_mount *mp,
886 struct xfs_buf *bp) 885 struct xfs_buf *bp)
887{ 886{
888 ASSERT(mp); 887 ASSERT(mp);
889 if (!XFS_FORCED_SHUTDOWN(mp)) { 888 if (!XFS_FORCED_SHUTDOWN(mp))
890 /* Grio redirection would go here
891 * if (XFS_BUF_IS_GRIO(bp)) {
892 */
893
894 xfs_buf_iorequest(bp); 889 xfs_buf_iorequest(bp);
895 return 0;
896 }
897 890
898 xfs_buftrace("XFSBDSTRAT IOERROR", bp); 891 xfs_buftrace("XFSBDSTRAT IOERROR", bp);
899 return (xfs_bioerror_relse(bp)); 892 xfs_bioerror_relse(bp);
900} 893}
901 894
902/* 895/*
diff --git a/fs/xfs/linux-2.6/xfs_lrw.h b/fs/xfs/linux-2.6/xfs_lrw.h
index e200253139cf..e1d498b4ba7a 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.h
+++ b/fs/xfs/linux-2.6/xfs_lrw.h
@@ -68,7 +68,8 @@ extern void xfs_inval_cached_trace(struct xfs_inode *,
68#define xfs_inval_cached_trace(ip, offset, len, first, last) 68#define xfs_inval_cached_trace(ip, offset, len, first, last)
69#endif 69#endif
70 70
71extern int xfsbdstrat(struct xfs_mount *, struct xfs_buf *); 71/* errors from xfsbdstrat() must be extracted from the buffer */
72extern void xfsbdstrat(struct xfs_mount *, struct xfs_buf *);
72extern int xfs_bdstrat_cb(struct xfs_buf *); 73extern int xfs_bdstrat_cb(struct xfs_buf *);
73extern int xfs_dev_is_read_only(struct xfs_mount *, char *); 74extern int xfs_dev_is_read_only(struct xfs_mount *, char *);
74 75