diff mbox

[RESEND,V3] fs: befs: Insert NULL inode to dentry

Message ID 1469586959-11091-1-git-send-email-salah.triki@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Salah Triki July 27, 2016, 2:35 a.m. UTC
As VFS expects, lookup inserts NULL inode to dentry when the named inode
does not exist.

Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 fs/befs/linuxvfs.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Luis de Bethencourt July 27, 2016, 3:27 p.m. UTC | #1
On 27/07/16 03:35, Salah Triki wrote:
> As VFS expects, lookup inserts NULL inode to dentry when the named inode
> does not exist.
> 
> Signed-off-by: Salah Triki <salah.triki@gmail.com>
> ---
>  fs/befs/linuxvfs.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
> index c734f21..2fea87b 100644
> --- a/fs/befs/linuxvfs.c
> +++ b/fs/befs/linuxvfs.c
> @@ -184,6 +184,7 @@ befs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
>  
>  	if (ret == BEFS_BT_NOT_FOUND) {
>  		befs_debug(sb, "<--- %s %pd not found", __func__, dentry);
> +		d_add(dentry, NULL);
>  		return ERR_PTR(-ENOENT);
>  
>  	} else if (ret != BEFS_OK || offset == 0) {
> 

Hi,

The expectation Salah is mentioning can be seen in
Documentation/filesystems/vfs.txt:383
"If the named inode does not exist a NULL inode should be inserted
into the dentry (this is called a negative dentry)."

Acked-by: Luis de Bethencourt <luisbg@osg.samsung.com>

I have applied this patch into [0]:
https://github.com/luisbg/linux-befs/tree/befs-next

Thanks,
Luis





[0] reason for the git branch: https://lkml.org/lkml/2016/7/26/533
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index c734f21..2fea87b 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -184,6 +184,7 @@  befs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 
 	if (ret == BEFS_BT_NOT_FOUND) {
 		befs_debug(sb, "<--- %s %pd not found", __func__, dentry);
+		d_add(dentry, NULL);
 		return ERR_PTR(-ENOENT);
 
 	} else if (ret != BEFS_OK || offset == 0) {