diff --git a/lustre/liblustre/super.c b/lustre/liblustre/super.c
index 5165d4937f4c65668b63d8bd9b058a951a69a861..f28190cc7dc12847362e34a0600b4af9b1dc2de4 100644
--- a/lustre/liblustre/super.c
+++ b/lustre/liblustre/super.c
@@ -2010,6 +2010,8 @@ llu_fsswop_mount(const char *source,
                 GOTO(out_osc, err);
         }
 
+        mdc_init_ea_size(sbi->ll_mdc_exp, sbi->ll_osc_exp);
+
         err = mdc_getstatus(sbi->ll_mdc_exp, &rootfid);
         if (err) {
                 CERROR("cannot mds_connect: rc = %d\n", err);
diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c
index dedb02f409d28057f020fe870af4e1ecaef73ae3..fcc78fc0b3c118a68382fc2fb4677561147aaff1 100644
--- a/lustre/llite/llite_lib.c
+++ b/lustre/llite/llite_lib.c
@@ -356,6 +356,12 @@ static int client_common_fill_super(struct super_block *sb,
                 GOTO(out_page_rm_cb, err);
         }
 
+        err = mdc_init_ea_size(sbi->ll_mdc_exp, sbi->ll_osc_exp);
+        if (err) {
+                CERROR("cannot set max EA and cookie sizes: rc = %d\n", err);
+                GOTO(out_lock_cn_cb, err);
+        }
+
         err = obd_prep_async_page(sbi->ll_osc_exp, NULL, NULL, NULL,
                                   0, NULL, NULL, NULL, 0, NULL);
         if (err < 0) {