return;
ldout(cct, 10) << __func__ << " '" << name << "' ino " << ino
<< " in dir " << dirino << dendl;
- dentry_invalidate_cb(callback_handle, dirino, ino, name);
+ dentry_invalidate_cb(callback_handle, dirino, ino, name.c_str(), name.length());
}
void Client::_schedule_invalidate_dentry_callback(Dentry *dn, bool del)
typedef void (*client_ino_callback_t)(void *handle, vinodeno_t ino, int64_t off, int64_t len);
typedef void (*client_dentry_callback_t)(void *handle, vinodeno_t dirino,
- vinodeno_t ino, string& name);
+ vinodeno_t ino, const char *name,
+ size_t len);
typedef int (*client_remount_callback_t)(void *handle);
typedef void(*client_switch_interrupt_callback_t)(void *handle, void *data);
}
static void dentry_invalidate_cb(void *handle, vinodeno_t dirino,
- vinodeno_t ino, string& name)
+ vinodeno_t ino, const char *name, size_t len)
{
CephFuse::Handle *cfuse = (CephFuse::Handle *)handle;
fuse_ino_t fdirino = cfuse->make_fake_ino(dirino.ino, dirino.snapid);
if (ino.ino != inodeno_t())
fino = cfuse->make_fake_ino(ino.ino, ino.snapid);
#if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)
- fuse_lowlevel_notify_delete(cfuse->se, fdirino, fino, name.c_str(), name.length());
+ fuse_lowlevel_notify_delete(cfuse->se, fdirino, fino, name, len);
#else
- fuse_lowlevel_notify_delete(cfuse->ch, fdirino, fino, name.c_str(), name.length());
+ fuse_lowlevel_notify_delete(cfuse->ch, fdirino, fino, name, len);
#endif
#elif FUSE_VERSION >= FUSE_MAKE_VERSION(2, 8)
- fuse_lowlevel_notify_inval_entry(cfuse->ch, fdirino, name.c_str(), name.length());
+ fuse_lowlevel_notify_inval_entry(cfuse->ch, fdirino, name, len);
#endif
}