This commit is contained in:
g2px1 2025-06-20 20:44:40 +00:00
parent e6ebf985b9
commit a3b7c416c5

15
libfs.c
View File

@ -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);