+ if (!obj && !pg) {
+ errno = inode->default_fops->write(inode, data, fpos, wr_cnt);
+ goto cont;
+ }
+
+ // new page and unaligned write, then prepare for partial override
+ if (!obj && wr_cnt != PAGE_SIZE) {
+ errno = __fill_page(inode, pg, tag);
+ if (errno < 0) {
+ return errno;
+ }
+ }
+
+ memcpy(offset(pg->data, off), data, wr_cnt);