X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdfilter%2Ffilter_lvb.c;h=b488387325a4cdbaf8aba134281c50c9d3742848;hb=ead6026e66b8fc96ac0c93924f5b5e8d2e7bb322;hp=a548983f251ac859da2a2ff6cdeb9b32e26ec586;hpb=905833527e0dd91d179b79387bcb26a9af28a7ff;p=fs%2Flustre-release.git diff --git a/lustre/obdfilter/filter_lvb.c b/lustre/obdfilter/filter_lvb.c index a548983..b488387 100644 --- a/lustre/obdfilter/filter_lvb.c +++ b/lustre/obdfilter/filter_lvb.c @@ -265,8 +265,29 @@ out: return rc; } +static int filter_lvbo_size(struct ldlm_lock *unused) +{ + return sizeof(struct ost_lvb); +} + +static int filter_lvbo_fill(struct ldlm_lock *lock, + void *buf, int buflen) +{ + struct ldlm_resource *res = lock->l_resource; + + lock_res(res); + LASSERTF(buflen >= res->lr_lvb_len, + "actual %d, want %d\n", buflen, res->lr_lvb_len); + memcpy(buf, res->lr_lvb_data, res->lr_lvb_len); + unlock_res(res); + + return res->lr_lvb_len; +} + struct ldlm_valblock_ops filter_lvbo = { lvbo_init: filter_lvbo_init, lvbo_update: filter_lvbo_update, - lvbo_free: filter_lvbo_free + lvbo_free: filter_lvbo_free, + lvbo_size: filter_lvbo_size, + lvbo_fill: filter_lvbo_fill };