| 13980 | } |
| 13981 | |
| 13982 | void Client::_ll_register_callbacks(struct ceph_client_callback_args *args) |
| 13983 | { |
| 13984 | if (!args) |
| 13985 | return; |
| 13986 | |
| 13987 | ldout(cct, 10) << __func__ << " cb " << args->handle |
| 13988 | << " invalidate_ino_cb " << args->ino_cb |
| 13989 | << " invalidate_dentry_cb " << args->dentry_cb |
| 13990 | << " switch_interrupt_cb " << args->switch_intr_cb |
| 13991 | << " remount_cb " << args->remount_cb |
| 13992 | << dendl; |
| 13993 | callback_handle = args->handle; |
| 13994 | if (args->ino_cb) { |
| 13995 | ino_invalidate_cb = args->ino_cb; |
| 13996 | async_ino_invalidator.start(); |
| 13997 | } |
| 13998 | if (args->dentry_cb) { |
| 13999 | dentry_invalidate_cb = args->dentry_cb; |
| 14000 | async_dentry_invalidator.start(); |
| 14001 | } |
| 14002 | if (args->switch_intr_cb) { |
| 14003 | switch_interrupt_cb = args->switch_intr_cb; |
| 14004 | interrupt_finisher.start(); |
| 14005 | } |
| 14006 | if (args->remount_cb) { |
| 14007 | remount_cb = args->remount_cb; |
| 14008 | remount_finisher.start(); |
| 14009 | } |
| 14010 | if (args->ino_release_cb) { |
| 14011 | ino_release_cb = args->ino_release_cb; |
| 14012 | async_ino_releasor.start(); |
| 14013 | } |
| 14014 | if (args->umask_cb) |
| 14015 | umask_cb = args->umask_cb; |
| 14016 | } |
| 14017 | |
| 14018 | // This is deprecated, use ll_register_callbacks2() instead. |
| 14019 | void Client::ll_register_callbacks(struct ceph_client_callback_args *args) |