On Fri, Jan 31, 2014 at 03:41:58PM -0500, Oleg Drokin wrote: > Recent changes to retry on ESTALE in linkat > (commit 442e31ca5a49e398351b2954b51f578353fdf210) > introduced a mountpoint reference leak and a small memory > leak in case a filesystem link operation returns ESTALE > which is pretty normal for distributed filesystems like > lustre, nfs and so on. > Free old_path in such a case. > > Signed-off-by: Oleg Drokin: <green@xxxxxxxxxxxxxx> > --- > fs/namei.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/namei.c b/fs/namei.c > index bcb838e..e620937 100644 > --- a/fs/namei.c > +++ b/fs/namei.c > @@ -3931,6 +3931,7 @@ out_dput: > goto retry; > } > if (retry_estale(error, how)) { > + path_put(&old_path); > how |= LOOKUP_REVAL; > goto retry; > } Umm... That obviously can't be right - we have another goto retry in the same situation (see in your diff context). I agree that we have a leak there, but you've fixed only a half of it. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html