From c0f0fde10ce221360ddf147f76051e61479dc5bd Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 29 Apr 2005 20:24:51 +0000 Subject: [PATCH] Branch: b1_4 - don't reference lr_lvb_data until after we hold lr_lvb_sem b=6170 --- lustre/ChangeLog | 1 + lustre/obdfilter/filter_lvb.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 043ab0a..0b11a58 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -26,6 +26,7 @@ tbd Cluster File Systems, Inc. - Avoid lock ordering deadlock issue with write/truncate (6203,5654) - reserve enough journal credits in fsfilt_start_log for setattr (4554) - ldlm_enqueue freed-export error path would always LBUG (6149,6184) + - don't reference lr_lvb_data until after we hold lr_lvb_sem (6170) * miscellania - by default create 1 inode per 4kB space on MDS, per 16kB on OSTs - allow --write-conf on an MDS with different nettype than client (5619) diff --git a/lustre/obdfilter/filter_lvb.c b/lustre/obdfilter/filter_lvb.c index c8a9d9b..e0ff9eb 100644 --- a/lustre/obdfilter/filter_lvb.c +++ b/lustre/obdfilter/filter_lvb.c @@ -100,7 +100,7 @@ static int filter_lvbo_update(struct ldlm_resource *res, struct lustre_msg *m, int buf_idx, int increase) { int rc = 0; - struct ost_lvb *lvb = res->lr_lvb_data; + struct ost_lvb *lvb; struct obd_device *obd; struct dentry *dentry; ENTRY; @@ -113,6 +113,7 @@ static int filter_lvbo_update(struct ldlm_resource *res, struct lustre_msg *m, RETURN(0); down(&res->lr_lvb_sem); + lvb = res->lr_lvb_data; if (lvb == NULL) { CERROR("No lvb when running lvbo_update!\n"); GOTO(out, rc = 0); -- 1.8.3.1