diff --git a/lustre/obdclass/llog_test.c b/lustre/obdclass/llog_test.c
index 307390cb6d206385396c3ac506ad836443d74a67..e80d416a32075b919029043930f219ce48110e92 100644
--- a/lustre/obdclass/llog_test.c
+++ b/lustre/obdclass/llog_test.c
@@ -237,6 +237,41 @@ static int llog_test_3(struct obd_device *obd, struct llog_handle *llh)
 
         if ((rc = verify_handle("3c", llh, num_recs)))
                 RETURN(rc);
+	
+	CWARN("3d: write log more than BITMAP_SIZE, return -ENOSPC\n");
+        for (i = 0; i < LLOG_BITMAP_SIZE(llh->lgh_hdr) + 1; i++) {
+                struct llog_rec_hdr hdr;
+                char buf_even[24];
+                char buf_odd[32];
+
+                memset(buf_odd, 0, sizeof buf_odd);
+                memset(buf_even, 0, sizeof buf_even);
+                if ((i % 2) == 0) {
+                        hdr.lrh_len = 24;
+                        hdr.lrh_type = OBD_CFG_REC;
+                        rc = llog_write_rec(llh, &hdr, NULL, 0, buf_even, -1);
+                } else {
+                        hdr.lrh_len = 32;
+                        hdr.lrh_type = OBD_CFG_REC;
+                        rc = llog_write_rec(llh, &hdr, NULL, 0, buf_odd, -1);
+		}
+                if (rc) {
+                        if (rc == -ENOSPC) {
+                                break;
+                        } else {
+                                CERROR("3d: write recs failed at #%d: %d\n",
+                               	        i + 1, rc);
+	                        RETURN(rc);
+                        }
+                }
+                num_recs++;
+        }
+        if (rc != -ENOSPC) {
+                CWARN("3d: write record more than BITMAP size!\n");
+                RETURN(-EINVAL);
+        }
+        if ((rc = verify_handle("3d", llh, num_recs)))
+                RETURN(rc);
 
         RETURN(rc);
 }