X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/c6de44b989e9d7286337e4cbf4d82d919f9120e6..a362b4b2c4abbf2da6ec14cb44a8685a81107f6a:/lunaix-os/kernel/fs/iso9660/inode.c diff --git a/lunaix-os/kernel/fs/iso9660/inode.c b/lunaix-os/kernel/fs/iso9660/inode.c index 31f85ce..e564910 100644 --- a/lunaix-os/kernel/fs/iso9660/inode.c +++ b/lunaix-os/kernel/fs/iso9660/inode.c @@ -11,7 +11,9 @@ static struct v_inode_ops iso_inode_ops = { static struct v_file_ops iso_file_ops = { .close = iso9660_close, .read = iso9660_read, + .read_page = iso9660_read, .write = iso9660_write, + .write_page = iso9660_write, .seek = iso9660_seek, .readdir = iso9660_readdir }; @@ -60,13 +62,18 @@ iso9660_fill_inode(struct v_inode* inode, struct iso_drecache* dir, int ino) return EIO; } isoino->record_fmt = xattr->record_fmt; - isoino->ctime = iso9660_dt2unix(&xattr->ctime); - isoino->mtime = iso9660_dt2unix(&xattr->mtime); + + inode->ctime = iso9660_dt2unix(&xattr->ctime); + inode->mtime = iso9660_dt2unix(&xattr->mtime); inode->lb_addr += dir->xattr_len * dir->fu_size; vfree(xattr); } + inode->ctime = dir->ctime ? dir->ctime : inode->ctime; + inode->mtime = dir->mtime ? dir->mtime : inode->mtime; + inode->atime = dir->atime ? dir->atime : inode->atime; + return 0; } \ No newline at end of file