From 1a165c02f5e97c830800d6dcbc11e86790fc015d Mon Sep 17 00:00:00 2001 From: Wang Di Date: Thu, 13 Nov 2014 23:16:09 -0800 Subject: [PATCH] LU-5894 mds: allow 2.4/2.5 clients create remote dir MDS will only return ENOTSUPP if old client (2.4/2.5) tries to create striped dir with stripe count > 1, so it can still create remote directory on the new MDS (>= 2.6). Change-Id: I25c90ae793f91eed032949d26fd5e7fc41801e4f Signed-off-by: Wang Di Reviewed-on: http://review.whamcloud.com/12715 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: John L. Hammond --- lustre/mdt/mdt_reint.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index f751f98..d602111 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -313,8 +313,13 @@ static int mdt_remote_permission(struct mdt_thread_info *info, return -ENOTSUPP; if (S_ISDIR(attr->la_mode) && spec->u.sp_ea.eadata != NULL && - spec->u.sp_ea.eadatalen != 0 && !mdt_is_striped_client(exp)) - return -ENOTSUPP; + spec->u.sp_ea.eadatalen != 0) { + const struct lmv_user_md *lum = spec->u.sp_ea.eadata; + + if (le32_to_cpu(lum->lum_stripe_count) > 1 && + !mdt_is_striped_client(exp)) + return -ENOTSUPP; + } return 0; } -- 1.8.3.1