mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
gfs2: Kill gfs2_io_error_bh_wd
All callers of gfs2_io_error_bh() call gfs2_withdraw() as well, so change gfs2_io_error_bh() to call gfs2_withdraw() directly. This also brings it in line with other similar error reporting functions. With that, gfs2_io_error_bh() is the same as gfs2_io_error_bh_wd(), so remove the latter. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
@@ -112,10 +112,8 @@ __acquires(&sdp->sd_ail_lock)
|
||||
&tr->tr_ail2_list);
|
||||
continue;
|
||||
}
|
||||
if (!cmpxchg(&sdp->sd_log_error, 0, -EIO)) {
|
||||
if (!cmpxchg(&sdp->sd_log_error, 0, -EIO))
|
||||
gfs2_io_error_bh(sdp, bh);
|
||||
gfs2_withdraw(sdp);
|
||||
}
|
||||
}
|
||||
|
||||
if (gfs2_withdrawn(sdp)) {
|
||||
@@ -324,10 +322,8 @@ static int gfs2_ail1_empty_one(struct gfs2_sbd *sdp, struct gfs2_trans *tr,
|
||||
continue;
|
||||
}
|
||||
if (!buffer_uptodate(bh) &&
|
||||
!cmpxchg(&sdp->sd_log_error, 0, -EIO)) {
|
||||
!cmpxchg(&sdp->sd_log_error, 0, -EIO))
|
||||
gfs2_io_error_bh(sdp, bh);
|
||||
gfs2_withdraw(sdp);
|
||||
}
|
||||
/*
|
||||
* If we have space for revokes and the bd is no longer on any
|
||||
* buf list, we can just add a revoke for it immediately and
|
||||
|
||||
@@ -49,7 +49,7 @@ void gfs2_pin(struct gfs2_sbd *sdp, struct buffer_head *bh)
|
||||
if (test_set_buffer_pinned(bh))
|
||||
gfs2_assert_withdraw(sdp, 0);
|
||||
if (!buffer_uptodate(bh))
|
||||
gfs2_io_error_bh_wd(sdp, bh);
|
||||
gfs2_io_error_bh(sdp, bh);
|
||||
bd = bh->b_private;
|
||||
/* If this buffer is in the AIL and it has already been written
|
||||
* to in-place disk block, remove it from the AIL.
|
||||
|
||||
@@ -303,7 +303,7 @@ int gfs2_meta_read(struct gfs2_glock *gl, u64 blkno, int flags,
|
||||
if (unlikely(!buffer_uptodate(bh))) {
|
||||
struct gfs2_trans *tr = current->journal_info;
|
||||
if (tr && test_bit(TR_TOUCHED, &tr->tr_flags))
|
||||
gfs2_io_error_bh_wd(sdp, bh);
|
||||
gfs2_io_error_bh(sdp, bh);
|
||||
brelse(bh);
|
||||
*bhp = NULL;
|
||||
return -EIO;
|
||||
@@ -331,7 +331,7 @@ int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh)
|
||||
if (!buffer_uptodate(bh)) {
|
||||
struct gfs2_trans *tr = current->journal_info;
|
||||
if (tr && test_bit(TR_TOUCHED, &tr->tr_flags))
|
||||
gfs2_io_error_bh_wd(sdp, bh);
|
||||
gfs2_io_error_bh(sdp, bh);
|
||||
return -EIO;
|
||||
}
|
||||
if (gfs2_withdrawn(sdp) &&
|
||||
|
||||
@@ -516,13 +516,11 @@ void gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function, char *file,
|
||||
}
|
||||
|
||||
/*
|
||||
* gfs2_io_error_bh_i - Flag a buffer I/O error
|
||||
* @withdraw: withdraw the filesystem
|
||||
* gfs2_io_error_bh_i - Flag a buffer I/O error and withdraw
|
||||
*/
|
||||
|
||||
void gfs2_io_error_bh_i(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||
const char *function, char *file, unsigned int line,
|
||||
bool withdraw)
|
||||
const char *function, char *file, unsigned int line)
|
||||
{
|
||||
if (gfs2_withdrawn(sdp))
|
||||
return;
|
||||
@@ -531,7 +529,5 @@ void gfs2_io_error_bh_i(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||
"block = %llu, "
|
||||
"function = %s, file = %s, line = %u\n",
|
||||
(unsigned long long)bh->b_blocknr, function, file, line);
|
||||
if (withdraw)
|
||||
gfs2_withdraw(sdp);
|
||||
gfs2_withdraw(sdp);
|
||||
}
|
||||
|
||||
|
||||
@@ -151,14 +151,10 @@ gfs2_io_error_i((sdp), __func__, __FILE__, __LINE__)
|
||||
|
||||
|
||||
void gfs2_io_error_bh_i(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||
const char *function, char *file, unsigned int line,
|
||||
bool withdraw);
|
||||
|
||||
#define gfs2_io_error_bh_wd(sdp, bh) \
|
||||
gfs2_io_error_bh_i((sdp), (bh), __func__, __FILE__, __LINE__, true)
|
||||
const char *function, char *file, unsigned int line);
|
||||
|
||||
#define gfs2_io_error_bh(sdp, bh) \
|
||||
gfs2_io_error_bh_i((sdp), (bh), __func__, __FILE__, __LINE__, false)
|
||||
gfs2_io_error_bh_i((sdp), (bh), __func__, __FILE__, __LINE__)
|
||||
|
||||
|
||||
extern struct kmem_cache *gfs2_glock_cachep;
|
||||
|
||||
Reference in New Issue
Block a user