Changeset 5bcd5b7 in mainline for uspace/lib/fs/libfs.c


Ignore:
Timestamp:
2013-07-29T14:36:57Z (12 years ago)
Author:
Jiri Zarevucky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4636a60
Parents:
677745a
Message:

Add support for server-side mounts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/fs/libfs.c

    r677745a r5bcd5b7  
    259259}
    260260
     261static void vfs_out_is_empty(ipc_callid_t rid, ipc_call_t *req)
     262{
     263        service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
     264        fs_index_t index = (fs_index_t) IPC_GET_ARG2(*req);
     265        int rc;
     266
     267        fs_node_t *node = NULL;
     268        rc = libfs_ops->node_get(&node, service_id, index);
     269        if (rc != EOK) {
     270                async_answer_0(rid, rc);
     271        }
     272        if (node == NULL) {
     273                async_answer_0(rid, EINVAL);
     274        }
     275       
     276        bool children = false;
     277        rc = libfs_ops->has_children(&children, node);
     278        libfs_ops->node_put(node);
     279       
     280        if (rc != EOK) {
     281                async_answer_0(rid, rc);
     282        }
     283        async_answer_0(rid, children ? ENOTEMPTY : EOK);
     284}
     285
    261286static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
    262287{
     
    322347                case VFS_OUT_GET_SIZE:
    323348                        vfs_out_get_size(callid, &call);
     349                        break;
     350                case VFS_OUT_IS_EMPTY:
     351                        vfs_out_is_empty(callid, &call);
    324352                        break;
    325353                default:
Note: See TracChangeset for help on using the changeset viewer.