<div class="gmail_quote">15 июля 2010 г. 20:49 пользователь Evgeny Sinelnikov <span dir="ltr"><<a href="mailto:sin@etersoft.ru">sin@etersoft.ru</a>></span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Здравствуйте,<br></blockquote><div><br>Здравствуйте!<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Разбирая задачу #5442, "Протестировать сборку Etercifs 4.5.1", я<br>
вспомнил о проблеме препятствующей использовать параметр direct.<br>
<a href="http://bugs.etersoft.ru/show_bug.cgi?id=5442" target="_blank">http://bugs.etersoft.ru/show_bug.cgi?id=5442</a><br>
<br>
Суть текущей проверки, насколько я понял, в том, что в новых версиях<br>
Etercifs 4.5.X.Y предполагается отключить параметр монтирования<br>
direct. Со времени моей последней работы над etercifs я помню, что<br>
проблема отключения direct связана с особенностями постраничного<br>
(страницы в 4кб для x86) кеширования в VFS.<br>
<br>
Проблема возникает, когда нужно уметь читать страницы, в которых часть<br>
байт заблокировано и сервер отдаёт только не заблокированные. При этом<br>
VFS, рассчитывая на не вынужденные блокировки (Advisory), читает<br>
блоками невзирая на блокировки. Соответственно сервер, работая с<br>
вынужденными блокировками (Mandatory), не позволяет прочесть, если<br>
какая-та часть байт заблокирована.<br>
<br>
Найден ли обходной путь для решения этой проблемы?<br></blockquote><div><br>Данная проблема решена проверкой на наличие блокировки в читаемом месте. Если блокировки нет, то используется чтение из кеша, если же она валится в EACCESS, то читается напрямую (есть ещё блокировка в каком-то другом месте. Если же блокировка есть, то возвращается EACCESS.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Со своей стороны, я полагаю, что без правки логики работы<br>
самба-сервера, решить эту проблему не получится. По крайней мере, пока<br>
я не знаю как это обойти.<font color="#888888"><br>
</font></blockquote></div><br>Есть иная проблема, описанная тут <a href="http://bugs.etersoft.ru/show_bug.cgi?id=4398#c5">http://bugs.etersoft.ru/show_bug.cgi?id=4398#c5</a>. Есть идея, после записи страниц памяти в файл, посылать запрос на сервер о смене времени изменения файла. Планирую попробовать реализовать и потестировать.<br clear="all">
<br>-- <br>Best regards,<br>Pavel Shilovsky.<br>