From: Wang Di Date: Fri, 14 Nov 2014 07:16:09 +0000 (-0800) Subject: LU-5894 mds: allow 2.4/2.5 clients create remote dir X-Git-Tag: 2.6.91~25 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=1a165c02f5e97c830800d6dcbc11e86790fc015d;p=fs%2Flustre-release.git 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 --- 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; }