diff --git a/[refs] b/[refs] index 2ba3a83350e3..270616e9ee45 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9ee8ab9fbf21e6b87ad227cd46c0a4be41ab749b +refs/heads/master: de45921535bfc3b1f63b426c2a9739635f864283 diff --git a/trunk/fs/namei.c b/trunk/fs/namei.c index c9750d755aff..e01070d7bf58 100644 --- a/trunk/fs/namei.c +++ b/trunk/fs/namei.c @@ -1712,8 +1712,14 @@ int open_namei(int dfd, const char *pathname, int flag, if (error) goto exit_dput; error = __do_follow_link(&path, nd); - if (error) + if (error) { + /* Does someone understand code flow here? Or it is only + * me so stupid? Anathema to whoever designed this non-sense + * with "intent.open". + */ + release_open_intent(nd); return error; + } nd->flags &= ~LOOKUP_PARENT; if (nd->last_type == LAST_BIND) goto ok;