Ядро 3.18.9
int retval;
struct kstat stat;
retval = vfs_stat("/dev/sdb1", &stat);
printk(KERN_INFO "vfs_stat(%s, &stat)=%d stat.uid.val=%d\n", "/dev/sdb1", retval, stat.uid.val);
Получаем dmesg:
vfs_stat(/dev/sdb1, &stat)=-14 stat.uid.val=3
Ошибка 14 это Bad address
Я знаю что vfs_stat работает AT_FDCWD, но я указываю абсолютный путь.
При этом устройство существует
stat /dev/sdb1
Файл: «/dev/sdb1»
Размер: 0 Блоков: 0 Блок В/В: 4096 блочный специальный файл
Устройство: 5h/5d Inode: 7866 Ссылки: 1 Тип устройства: 8,11
Доступ: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk)
Доступ: 2015-04-13 15:29:35.794198691 +0300
Модифицирован: 2015-04-13 15:29:35.794198691 +0300
Изменён: 2015-04-13 15:29:35.794198691 +0300
Создан: -