[Devel] Бага 3239
Pavel Shilovsky
=?iso-8859-1?q?piastry_=CE=C1_etersoft=2Eru?=
Чт Фев 26 11:03:33 MSK 2009
Провёл кое-какие исследования, увеличив время задержки на 10 секунд для
наглядности.
шара //server/upload
uid=piastry
Создаём каталог "4", смотрим сразу:
[piastry на tartarus 4]$ ls -la
итого 0
drwxr-sr-x 2 nobody users 0 Фев 26 10:39 .
drwxr-sr-x 3 piastry piastry 0 Фев 26 10:39 ..
смотрим чуть позже:
[piastry на tartarus 4]$ ls -la
итого 0
drwxr-sr-x 2 piastry piastry 0 Фев 26 10:39 .
drwxr-sr-x 3 piastry piastry 0 Фев 26 10:39 ..
Мы видим, что атрибуты применяются позже самого создания, сначала приезжают
те, что на сервере. В таком случае всё решается добавлением одной строчки в
функцию cifs_mkdir - делаем айнод невалидным после создания.
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 9c548f1..de80174 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -949,6 +949,7 @@ int cifs_mkdir(struct inode *inode, struct dentry
*direntry, int mode)
frame was long enough */
posix_fill_in_inode(direntry->d_inode,
pInfo, 1 /* NewInode */);
+ CIFS_I(direntry->d_inode)->time = 0;
#ifdef CONFIG_CIFS_DEBUG2
cFYI(1, ("instantiated dentry %p %s to inode %p",
direntry, direntry->d_name.name, newinode));
У меня заработало.
--
Best regards,
Pavel Shilovsky.
Подробная информация о списке рассылки devel