Message ID | 20241012085608.712-1-pali@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Allow to choose symlink and socket type | expand |
diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c index cd12704cae0c..50048dccc5ff 100644 --- a/fs/smb/client/reparse.c +++ b/fs/smb/client/reparse.c @@ -574,8 +574,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);
$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 <pali@kernel.org> --- fs/smb/client/reparse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)