From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roman Zippel Subject: [PATCH 6/6] hfs: set type/creator for symlinks Date: Mon, 16 Jan 2006 17:43:37 +0100 (CET) Message-ID: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Return-path: Received: from scrub.xs4all.nl ([194.109.195.176]:3247 "EHLO scrub.xs4all.nl") by vger.kernel.org with ESMTP id S1751090AbWAPQnm (ORCPT ); Mon, 16 Jan 2006 11:43:42 -0500 To: Andrew Morton , linux-fsdevel@vger.kernel.org Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Set the correct type and creator for symlinks. Signed-off-by: Roman Zippel --- fs/hfsplus/catalog.c | 9 +++++++-- fs/hfsplus/hfsplus_raw.h | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) Index: linux-2.6-git/fs/hfsplus/catalog.c =================================================================== --- linux-2.6-git.orig/fs/hfsplus/catalog.c 2006-01-16 17:34:29.000000000 +0100 +++ linux-2.6-git/fs/hfsplus/catalog.c 2006-01-16 17:34:37.000000000 +0100 @@ -119,8 +119,13 @@ static int hfsplus_cat_build_record(hfsp file->access_date = hfsp_now2mt(); if (cnid == inode->i_ino) { hfsplus_set_perms(inode, &file->permissions); - file->user_info.fdType = cpu_to_be32(HFSPLUS_SB(inode->i_sb).type); - file->user_info.fdCreator = cpu_to_be32(HFSPLUS_SB(inode->i_sb).creator); + if (S_ISLNK(inode->i_mode)) { + file->user_info.fdType = cpu_to_be32(HFSP_SYMLINK_TYPE); + file->user_info.fdCreator = cpu_to_be32(HFSP_SYMLINK_CREATOR); + } else { + file->user_info.fdType = cpu_to_be32(HFSPLUS_SB(inode->i_sb).type); + file->user_info.fdCreator = cpu_to_be32(HFSPLUS_SB(inode->i_sb).creator); + } if ((file->permissions.rootflags | file->permissions.userflags) & HFSPLUS_FLG_IMMUTABLE) file->flags |= cpu_to_be16(HFSPLUS_FILE_LOCKED); } else { Index: linux-2.6-git/fs/hfsplus/hfsplus_raw.h =================================================================== --- linux-2.6-git.orig/fs/hfsplus/hfsplus_raw.h 2006-01-16 17:34:29.000000000 +0100 +++ linux-2.6-git/fs/hfsplus/hfsplus_raw.h 2006-01-16 17:34:37.000000000 +0100 @@ -43,6 +43,9 @@ #define HFSP_HARDLINK_TYPE 0x686c6e6b /* 'hlnk' */ #define HFSP_HFSPLUS_CREATOR 0x6866732b /* 'hfs+' */ +#define HFSP_SYMLINK_TYPE 0x736c6e6b /* 'slnk' */ +#define HFSP_SYMLINK_CREATOR 0x72686170 /* 'rhap' */ + #define HFSP_MOUNT_VERSION 0x482b4c78 /* 'H+Lx' */ /* Structures used on disk */