A file can be created.

Now up to sys_write() in pager, which needs to be filled in.
This commit is contained in:
Bahadir Balban
2008-04-19 01:27:41 +01:00
parent ce26835968
commit df0eccf7b3
5 changed files with 11 additions and 4 deletions

View File

@@ -245,7 +245,7 @@ struct vnode *memfs_vnode_mknod(struct vnode *v, const char *dirname,
return newv;
/* Initialise the vnode */
vfs_set_type(newv, S_IFDIR);
vfs_set_type(newv, mode);
/* Get the next directory entry available on the parent vnode */
if (v->dirbuf.npages * PAGE_SIZE <= v->size)

View File

@@ -113,8 +113,10 @@ int sys_open(l4id_t sender, const char *pathname, int flags, unsigned int mode)
return 0;
}
/* Creating new node, file or directory */
/* Creating new file */
if (flags & O_CREAT) {
/* Make sure mode identifies a file */
mode |= S_IFREG;
if (IS_ERR(v = vfs_create(task, pdata, mode))) {
retval = (int)v;
goto out;
@@ -182,6 +184,9 @@ int sys_mkdir(l4id_t sender, const char *pathname, unsigned int mode)
return 0;
}
/* Make sure we create a directory */
mode |= S_IFDIR;
/* Create the directory or fail */
if (IS_ERR(v = vfs_create(task, pdata, mode)))
l4_ipc_return((int)v);