akpm at linux-foundation.org
2017-Nov-30 22:24 UTC
[Ocfs2-devel] [patch 02/11] ocfs2: give an obvious tip for mismatched cluster names
From: Gang He <ghe at suse.com> Subject: ocfs2: give an obvious tip for mismatched cluster names Add an obvious error message, due to mismatched cluster names between on-disk and in the current cluster. We can meet this case during OCFS2 cluster migration. If we can give the user an obvious tip for why they can not mount the file system after migration, they can quickly fix this mismatch problem. Second, also move printing ocfs2_fill_super() errno to the front of ocfs2_dismount_volume(), since ocfs2_dismount_volume() will also print its own message. I looked through all the code of OCFS2 (include o2cb); there is not any place which returns this error. In fact, the function calling path ocfs2_fill_super -> ocfs2_mount_volume -> ocfs2_dlm_init -> dlm_new_lockspace is a very specific one. We can use this errno to give the user a more clear tip, since this case is a little common during cluster migration, but the customer can quickly get the failure cause if there is a error printed. Also, I think it is not possible to add this errno in the o2cb path during ocfs2_dlm_init(), since the o2cb code has been stable for a long time. We only print this error tip when the user uses pcmk stack, since using the o2cb stack the user will not meet this error. [ghe at suse.com: v2] Link: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495419305-2D3780-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=Anizi3o0ZEwILAnq8iiH7ZUxVKzFDRuYLdiaRHpC4Vs&s=d_OaUpYR5I06nrTowJ7vyCrdVacgZFzsh9Kt6L8fud0&eLink: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495089336-2D19312-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=Anizi3o0ZEwILAnq8iiH7ZUxVKzFDRuYLdiaRHpC4Vs&s=tHiMEtYMT-cxwBE5pjdrOew8mDXm92NHTa1vbbdVb0M&eSigned-off-by: Gang He <ghe at suse.com> Reviewed-by: Mark Fasheh <mfasheh at versity.com> Cc: Joel Becker <jlbec at evilplan.org> Cc: Junxiao Bi <junxiao.bi at oracle.com> Cc: Joseph Qi <jiangqi903 at gmail.com> Signed-off-by: Andrew Morton <akpm at linux-foundation.org> --- fs/ocfs2/super.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff -puN fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names fs/ocfs2/super.c --- a/fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names +++ a/fs/ocfs2/super.c @@ -1208,14 +1208,15 @@ static int ocfs2_fill_super(struct super read_super_error: brelse(bh); + if (status) + mlog_errno(status); + if (osb) { atomic_set(&osb->vol_state, VOLUME_DISABLED); wake_up(&osb->osb_mount_event); ocfs2_dismount_volume(sb, 1); } - if (status) - mlog_errno(status); return status; } @@ -1843,6 +1844,9 @@ static int ocfs2_mount_volume(struct sup status = ocfs2_dlm_init(osb); if (status < 0) { mlog_errno(status); + if (status == -EBADR && ocfs2_userspace_stack(osb)) + mlog(ML_ERROR, "couldn't mount because cluster name on" + " disk does not match the running cluster name.\n"); goto leave; } _
Joseph Qi
2017-Dec-01 01:42 UTC
[Ocfs2-devel] [patch 02/11] ocfs2: give an obvious tip for mismatched cluster names
Acked-by: Joseph Qi <jiangqi903 at gmail.com> On 17/12/1 06:24, akpm at linux-foundation.org wrote:> From: Gang He <ghe at suse.com> > Subject: ocfs2: give an obvious tip for mismatched cluster names > > Add an obvious error message, due to mismatched cluster names between > on-disk and in the current cluster. We can meet this case during OCFS2 > cluster migration. > > If we can give the user an obvious tip for why they can not mount the file > system after migration, they can quickly fix this mismatch problem. > > Second, also move printing ocfs2_fill_super() errno to the front of > ocfs2_dismount_volume(), since ocfs2_dismount_volume() will also print > its own message. > > I looked through all the code of OCFS2 (include o2cb); there is not any > place which returns this error. In fact, the function calling path > ocfs2_fill_super -> ocfs2_mount_volume -> ocfs2_dlm_init -> > dlm_new_lockspace is a very specific one. We can use this errno to give > the user a more clear tip, since this case is a little common during > cluster migration, but the customer can quickly get the failure cause if > there is a error printed. Also, I think it is not possible to add this > errno in the o2cb path during ocfs2_dlm_init(), since the o2cb code has > been stable for a long time. > > We only print this error tip when the user uses pcmk stack, since using > the o2cb stack the user will not meet this error. > > [ghe at suse.com: v2] > Link: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495419305-2D3780-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=NM9dBrqizxz_iRGR3xJBDWe3ZXjRmdIFbsuME7pct2E&s=_ZX6R3EJr9aqEZxYr8VosRFGO6DGM6ijCMJJtUn-vkU&e> Link: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495089336-2D19312-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=NM9dBrqizxz_iRGR3xJBDWe3ZXjRmdIFbsuME7pct2E&s=RPH6JpO0mNpIPG31fCVyRNShmF6JUvnvGkN61uUU9ag&e> Signed-off-by: Gang He <ghe at suse.com> > Reviewed-by: Mark Fasheh <mfasheh at versity.com> > Cc: Joel Becker <jlbec at evilplan.org> > Cc: Junxiao Bi <junxiao.bi at oracle.com> > Cc: Joseph Qi <jiangqi903 at gmail.com> > Signed-off-by: Andrew Morton <akpm at linux-foundation.org> > --- > > fs/ocfs2/super.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff -puN fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names fs/ocfs2/super.c > --- a/fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names > +++ a/fs/ocfs2/super.c > @@ -1208,14 +1208,15 @@ static int ocfs2_fill_super(struct super > read_super_error: > brelse(bh); > > + if (status) > + mlog_errno(status); > + > if (osb) { > atomic_set(&osb->vol_state, VOLUME_DISABLED); > wake_up(&osb->osb_mount_event); > ocfs2_dismount_volume(sb, 1); > } > > - if (status) > - mlog_errno(status); > return status; > } > > @@ -1843,6 +1844,9 @@ static int ocfs2_mount_volume(struct sup > status = ocfs2_dlm_init(osb); > if (status < 0) { > mlog_errno(status); > + if (status == -EBADR && ocfs2_userspace_stack(osb)) > + mlog(ML_ERROR, "couldn't mount because cluster name on" > + " disk does not match the running cluster name.\n"); > goto leave; > } > > _ >
alex chen
2017-Dec-16 08:55 UTC
[Ocfs2-devel] [patch 02/11] ocfs2: give an obvious tip for mismatched cluster names
Acked-by: Alex Chen <alex.chen at huawei.com> On 2017/12/1 6:24, akpm at linux-foundation.org wrote:> From: Gang He <ghe at suse.com> > Subject: ocfs2: give an obvious tip for mismatched cluster names > > Add an obvious error message, due to mismatched cluster names between > on-disk and in the current cluster. We can meet this case during OCFS2 > cluster migration. > > If we can give the user an obvious tip for why they can not mount the file > system after migration, they can quickly fix this mismatch problem. > > Second, also move printing ocfs2_fill_super() errno to the front of > ocfs2_dismount_volume(), since ocfs2_dismount_volume() will also print > its own message. > > I looked through all the code of OCFS2 (include o2cb); there is not any > place which returns this error. In fact, the function calling path > ocfs2_fill_super -> ocfs2_mount_volume -> ocfs2_dlm_init -> > dlm_new_lockspace is a very specific one. We can use this errno to give > the user a more clear tip, since this case is a little common during > cluster migration, but the customer can quickly get the failure cause if > there is a error printed. Also, I think it is not possible to add this > errno in the o2cb path during ocfs2_dlm_init(), since the o2cb code has > been stable for a long time. > > We only print this error tip when the user uses pcmk stack, since using > the o2cb stack the user will not meet this error. > > [ghe at suse.com: v2] > Link: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495419305-2D3780-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=Anizi3o0ZEwILAnq8iiH7ZUxVKzFDRuYLdiaRHpC4Vs&s=d_OaUpYR5I06nrTowJ7vyCrdVacgZFzsh9Kt6L8fud0&e> Link: https://urldefense.proofpoint.com/v2/url?u=http-3A__lkml.kernel.org_r_1495089336-2D19312-2D1-2Dgit-2Dsend-2Demail-2Dghe-40suse.com&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=C7gAd4uDxlAvTdc0vmU6X8CMk6L2iDY8-HD0qT6Fo7Y&m=Anizi3o0ZEwILAnq8iiH7ZUxVKzFDRuYLdiaRHpC4Vs&s=tHiMEtYMT-cxwBE5pjdrOew8mDXm92NHTa1vbbdVb0M&e> Signed-off-by: Gang He <ghe at suse.com> > Reviewed-by: Mark Fasheh <mfasheh at versity.com> > Cc: Joel Becker <jlbec at evilplan.org> > Cc: Junxiao Bi <junxiao.bi at oracle.com> > Cc: Joseph Qi <jiangqi903 at gmail.com> > Signed-off-by: Andrew Morton <akpm at linux-foundation.org> > --- > > fs/ocfs2/super.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff -puN fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names fs/ocfs2/super.c > --- a/fs/ocfs2/super.c~ocfs2-give-an-obvious-tip-for-dismatch-cluster-names > +++ a/fs/ocfs2/super.c > @@ -1208,14 +1208,15 @@ static int ocfs2_fill_super(struct super > read_super_error: > brelse(bh); > > + if (status) > + mlog_errno(status); > + > if (osb) { > atomic_set(&osb->vol_state, VOLUME_DISABLED); > wake_up(&osb->osb_mount_event); > ocfs2_dismount_volume(sb, 1); > } > > - if (status) > - mlog_errno(status); > return status; > } > > @@ -1843,6 +1844,9 @@ static int ocfs2_mount_volume(struct sup > status = ocfs2_dlm_init(osb); > if (status < 0) { > mlog_errno(status); > + if (status == -EBADR && ocfs2_userspace_stack(osb)) > + mlog(ML_ERROR, "couldn't mount because cluster name on" > + " disk does not match the running cluster name.\n"); > goto leave; > } > > _ > > _______________________________________________ > Ocfs2-devel mailing list > Ocfs2-devel at oss.oracle.com > https://oss.oracle.com/mailman/listinfo/ocfs2-devel > > . >