lkml.org 
[lkml]   [2011]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] vfs: make unlink() return ENOENT in preference to EROFS
    Date
    If user space attempts to unlink a non-existent file, and the file
    system is mounted read-only, return ENOENT instead of EROFS. Either
    error code is arguably valid/correct, but ENOENT is a more specific
    error message.

    Reported-by: Michael Tokarev <mjt@tls.msk.ru>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    ---
    fs/namei.c | 4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

    diff --git a/fs/namei.c b/fs/namei.c
    index 1ab641f..a9edbe0 100644
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -2708,9 +2708,9 @@ static long do_unlinkat(int dfd, const char __user *pathname)
    error = PTR_ERR(dentry);
    if (!IS_ERR(dentry)) {
    /* Why not before? Because we want correct error value */
    - if (nd.last.name[nd.last.len])
    - goto slashes;
    inode = dentry->d_inode;
    + if (nd.last.name[nd.last.len] || !inode)
    + goto slashes;
    if (inode)
    ihold(inode);
    error = mnt_want_write(nd.path.mnt);
    --
    1.7.4.1.22.gec8e1.dirty


    \
     
     \ /
      Last update: 2011-06-06 22:39    [W:0.021 / U:0.676 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site