Thread (14 messages) flat view 14 messages, 7 authors, 2017-01-31

[LTP] utimensat EACCES vs. EPERM in 4.8+

From: Miklos Szeredi <hidden>
Date: 2017-01-16 15:53:15
Also in: linux-fsdevel

On Mon, Jan 16, 2017 at 4:46 PM, Jan Stancek [off-list ref] wrote:
Hi,

we seem to have a conflict between kernel and man pages.
From utimensat man page:

EACCES times is NULL, or both tv_nsec values are UTIME_NOW, and either:
       *  the effective user ID of the caller does not match the owner of the
          file, the caller does not  have  write  access  to  the file, and the
          caller is not privileged (Linux: does not have either the CAP_FOWNER
          or the CAP_DAC_OVERRIDE capability); or,
       *  the file is marked immutable (see chattr(1)).

But following 2 commits gradually replaced EACCES with EPERM.

commit 337684a1746f93ae107e05d90977b070bb7e39d8
Author: Eryu Guan [off-list ref]
Date:   Tue Aug 2 19:58:28 2016 +0800
    fs: return EPERM on immutable inode
I agree with Eryu that consistently returning EPERM for immutable is
better than sometimes returning EACCESS and sometimes EPERM.

So I think the man page should be fixed.
commit f2b20f6ee842313a0d681dbbf7f87b70291a6a3b
Author: Miklos Szeredi [off-list ref]
Date:   Fri Sep 16 12:44:20 2016 +0200
    vfs: move permission checking into notify_change() for utimes(NULL)
Actually this later commit didn't change the error value, it just
moved code around.

Thanks,
Miklos
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help