From: Pali Rohár Date: Thu, 12 Sep 2024 13:06:22 +0000 (+0200) Subject: cifs: Improve guard for excluding $LXDEV xattr X-Git-Tag: microblaze-v6.16~487^2~13 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=d3d797e326533794c3f707ce1761da7a8895458c;p=linux-2.6-microblaze.git cifs: Improve guard for excluding $LXDEV xattr $LXDEV xattr is for storing block/char device's major and minor number. Change guard which excludes storing $LXDEV xattr to explicitly filter everything except block and char device. Current guard is opposite, which is currently correct but is less-safe. This change is required for adding support for creating WSL-style symlinks as symlinks also do not use device's major and minor numbers. Signed-off-by: Pali Rohár Signed-off-by: Steve French --- diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c index 722c9beb8fa6..732b3b51128b 100644 --- a/fs/smb/client/reparse.c +++ b/fs/smb/client/reparse.c @@ -378,8 +378,8 @@ static int wsl_set_xattrs(struct inode *inode, umode_t _mode, memset(iov, 0, sizeof(*iov)); - /* Exclude $LXDEV xattr for sockets and fifos */ - if (S_ISSOCK(_mode) || S_ISFIFO(_mode)) + /* Exclude $LXDEV xattr for non-device files */ + if (!S_ISBLK(_mode) && !S_ISCHR(_mode)) num_xattrs = ARRAY_SIZE(xattrs) - 1; else num_xattrs = ARRAY_SIZE(xattrs);