Whamcloud - gitweb
LU-4611 osd: improve credits calculation
[fs/lustre-release.git] / lustre / obdclass / llog_osd.c
index 9bff08e..fd9bfc3 100644 (file)
@@ -283,6 +283,8 @@ static int llog_osd_declare_write_rec(const struct lu_env *env,
        LASSERT(env);
        LASSERT(th);
        LASSERT(loghandle);
+       LASSERT(rec);
+       LASSERT(rec->lrh_len <= LLOG_CHUNK_SIZE);
 
        o = loghandle->lgh_obj;
        LASSERT(o);
@@ -309,10 +311,10 @@ static int llog_osd_declare_write_rec(const struct lu_env *env,
                lgi->lgi_off = 0;
        }
 
-       lgi->lgi_buf.lb_len = 32 * 1024;
+       lgi->lgi_buf.lb_len = rec->lrh_len;
        lgi->lgi_buf.lb_buf = NULL;
        /* XXX: implement declared window or multi-chunks approach */
-       rc = dt_declare_record_write(env, o, &lgi->lgi_buf, lgi->lgi_off, th);
+       rc = dt_declare_record_write(env, o, &lgi->lgi_buf, -1, th);
 
        RETURN(rc);
 }
@@ -913,11 +915,8 @@ static int llog_osd_declare_create(const struct lu_env *env,
        if (rc)
                RETURN(rc);
 
-       lgi->lgi_buf.lb_len = LLOG_CHUNK_SIZE;
-       lgi->lgi_buf.lb_buf = NULL;
-       rc = dt_declare_record_write(env, o, &lgi->lgi_buf, 0, th);
-       if (rc)
-               RETURN(rc);
+       /* do not declare header initialization here as it's declared
+        * in llog_osd_declare_write_rec() which is always called */
 
        if (res->lgh_name) {
                struct dt_object *llog_dir;