Eu encontrei uma solução alternativa. Parece ser uma condição de corrida no módulo kernel do hfsplus, causada pelo acesso não atômico a flags de usuários. Eu o desabilitei e as flags de usuário serão zero, desbloqueadas, ok para mim.
fs / hfsplus / inode.c perto da linha 248:
inode->i_mode = mode;
/* FIXME commented out because of unreliable results, needs mutex_lock (?) */
// HFSPLUS_I(inode)->userflags = perms->userflags;
if (perms->rootflags & HFSPLUS_FLG_IMMUTABLE)
fs / hfsplus / catalog.c próxima linha 79:
perms->rootflags &= ~HFSPLUS_FLG_APPEND;
/* FIXME commented out because of unreliable results, needs mutex_lock (?) */
// perms->userflags = HFSPLUS_I(inode)->userflags;
perms->mode = cpu_to_be16(inode->i_mode);
Você pode criar um kernel personalizado, mas eu uso o dkms:
$ cd /usr/src
$ tar xjpvf linux-source-*.tar.bz2 linux-source-*/fs/hfsplus
$ cp -R linux-source-*/fs/hfsplus hfsplus-YOUR_VERSION
$ vi hfsplus-YOUR_VERSION/inode.c
$ vi hfsplus-YOUR_VERSION/catalog.c
$ vi hfsplus-YOUR_VERSION/dkms.conf (see below for the content)
$ su
# dkms install hfsplus/YOUR_VERSION
/usr/src/hfsplus-YOUR_VERSION/dkms.conf:
NAME=hfsplus
VERSION=YOUR_VERSION
PACKAGE_NAME="$NAME"
PACKAGE_VERSION="$VERSION"
MAKE[0]="make -C ${kernel_source_dir}
SUBDIRS=${dkms_tree}/${NAME}/${VERSION}/build modules"
BUILT_MODULE_NAME[0]="hfsplus"
DEST_MODULE_LOCATION[0]="/kernel/fs/hfsplus"
REMAKE_INITRD=y
AUTOINSTALL="yes"
Observação: a instalação falha para mim, se eu não fizer o cd em / usr / src.
Para desinstalar:
# dkms remove hfsplus/YOUR_VERSION --all
Ambiente: MacBookPro7,1, Core 2 Duo, SATA NVIDIA MCP89 AHCI, Mac OS X 10.6, Debian GNU / Linux, Kernel 2.6.28, 2.6.29, 3.0, 3.1, 3.2.