Hello,
I'm seeing a write failure because another thread in ganesha doing 'open
downgrade' closed the FD the find_fd() returned. Any suggestion on how
to fix the race?
vfs_reopen2()
{...
status = vfs_open_my_fd(myself, openflags, posix_flags, my_fd);
if (!FSAL_IS_ERROR(status)) {
/* Close the existing file descriptor and copy the new
* one over.
*/
vfs_close_my_fd(my_share_fd);
*my_share_fd = fd;
vfs_write2()
{
..
status = find_fd(&my_fd, obj_hdl, bypass, state, openflags,
&has_lock, &closefd, false);
if (FSAL_IS_ERROR(status)) {
LogDebug(COMPONENT_FSAL,
"find_fd failed %s", msg_fsal_err(status.major));
goto out;
}
fsal_set_credentials(op_ctx->creds);
nb_written = pwrite(my_fd, buffer, buffer_size, offset);
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel