6
This commit is contained in:
parent
e6ebf985b9
commit
a3b7c416c5
15
libfs.c
15
libfs.c
@ -50,9 +50,20 @@ static ssize_t dummy_read(struct file *file, char __user *buf, size_t len, loff_
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static ssize_t dummy_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos) {
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
static ssize_t dummy_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos) {
|
||||
struct inode *inode = file_inode(file);
|
||||
loff_t new_end = *ppos + len;
|
||||
|
||||
if (inode->i_size < new_end) inode->i_size = new_end;
|
||||
*ppos += len;
|
||||
mark_inode_dirty(inode);
|
||||
return len;
|
||||
}
|
||||
|
||||
static const struct file_operations custom_file_ops = {
|
||||
.read = dummy_read,
|
||||
@ -120,7 +131,9 @@ static int books_create(struct user_namespace *ns, struct inode *dir,
|
||||
// inode->i_op = &simple_file_inode_operations;
|
||||
inode->i_op = &custom_file_inode_operations;
|
||||
inode->i_fop = &custom_file_ops;
|
||||
d_instantiate(dentry, inode);
|
||||
// d_instantiate(dentry, inode);
|
||||
d_add(dentry, inode);
|
||||
logf("dentry flags: %u, dentry name: %s", dentry->d_flags, dentry->d_name.name);
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
logf("books_create: created file %s (ino=%lu)", dentry->d_name.name, inode->i_ino);
|
||||
|
Loading…
x
Reference in New Issue
Block a user