cifs: handle -EINTR in cifs_setattr
authorRonnie Sahlberg <lsahlber@redhat.com>
Thu, 8 Oct 2020 23:32:56 +0000 (09:32 +1000)
committerSteve French <stfrench@microsoft.com>
Fri, 16 Oct 2020 04:58:14 +0000 (23:58 -0500)
commitc6cc4c5a72505a0ecefc9b413f16bec512f38078
treec110cc563fd15380793545f7a646ef51dc701174
parent8e670f77c4a55013db6d23b962f9bf6673a5e7b6
cifs: handle -EINTR in cifs_setattr

RHBZ: 1848178

Some calls that set attributes, like utimensat(), are not supposed to return
-EINTR and thus do not have handlers for this in glibc which causes us
to leak -EINTR to the applications which are also unprepared to handle it.

For example tar will break if utimensat() return -EINTR and abort unpacking
the archive. Other applications may break too.

To handle this we add checks, and retry, for -EINTR in cifs_setattr()

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/inode.c