LINUX.ORG.RU

Получить значение атрибута exFAT

 , ,


0

1

Пытаюсь найти способ получить значение видндового атрибута Hidden для разных файловых систем. И если с FAT(ioctl) и NTFS(getxattr) довольно не сложно оказалось, то с exFAT что-то никак не идёт.

Как я понял ioctl получения атрибутов для exFAT не реализован ни в яделном модуле, ни в fuse(тут вроде что-то обещают, но только в версии 1.4, которая будет неизвестно когда).

При этом я нашел в коде ядерного модуля упоминания об атрибутах и даже функции, которыми теоретически можно было бы эти атрибуты получить.

static int exfat_getattr(const struct path *path, struct kstat *stat,
			 u32 request_mask, unsigned int flags)
{
	struct inode *inode = path->dentry->d_inode;

	pr_debug("%s entered\n", __func__);

	generic_fillattr(inode, stat);
	stat->blksize = EXFAT_SB(inode->i_sb)->fs_info.cluster_size;

	pr_debug("%s exited\n", __func__);
	return 0;
}

Но вот как дернуть этот вызов из ядерного модуля(и сработает ли это) я совсем пока придумать не могу.

Может есть какой-то общий способ(который я не знаю) как дернуть что-то из ядра? Процедура же статическая.

Надеюсь кто сталкивался с таким и что-нибудь посоветует.

Возможно это лучше в Development перенести. Размещаю в General, т.к. вдруг есть вариант не только из кода, но и какой-нибудь утилитой эти атрибуты вытащить.

★★★★★

Последнее исправление: Loki13 (всего исправлений: 4)