Changeset 760 for Whitix/branches
- Timestamp:
- 07/09/08 15:27:23 (5 months ago)
- Files:
-
- 1 modified
-
Whitix/branches/fs/fs/ext3/inode.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Whitix/branches/fs/fs/ext3/inode.c
r757 r760 89 89 int Ext3WriteVNode(struct VNode* vNode) 90 90 { 91 KePrint("Ext3WriteVNode\n"); 92 return 0; 91 int err; 92 93 /* Force a commit to the journal, to make sure this vNode is written to disk. */ 94 PreemptDisable(); 95 err=JournalForceCommit(EXT3_JOURNAL(vNode)); 96 PreemptEnable(); 97 98 return err; 93 99 } 94 100 … … 107 113 108 114 return err; 115 } 116 117 int Ext3INodeUpdate(struct JournalHandle* handle, struct VNode* vNode, 118 struct Buffer* buffer, struct Ext3INode* iNode) 119 { 120 if (handle) 121 { 122 /* Call GetWriteAccess? */ 123 } 124 125 /* Fill in the raw inode structure. */ 126 iNode->aTime=vNode->aTime.seconds; 127 iNode->cTime=vNode->cTime.seconds; 128 iNode->mTime=vNode->mTime.seconds; 129 iNode->size=vNode->size; 130 131 /* TODO: Complete. */ 132 133 JournalDirtyMetadata(handle, buffer); 134 135 BufferRelease(buffer); 136 137 return 0; 109 138 } 110 139 … … 114 143 struct Buffer* buffer; 115 144 struct Ext3INode* iNode; 145 int err=0; 116 146 117 147 handle=JournalStart(EXT3_JOURNAL(vNode), 2); … … 119 149 if (handle) 120 150 { 121 Ext3INodeReserveWrite(handle, vNode, &buffer, &iNode); 122 } 123 124 return 0; 151 err=Ext3INodeReserveWrite(handle, vNode, &buffer, &iNode); 152 153 if (!err) 154 { 155 BufferGet(buffer); 156 err=Ext3INodeUpdate(handle, vNode, buffer, iNode); 157 BufferRelease(buffer); 158 } 159 } 160 161 JournalStop(handle); 162 163 return err; 125 164 } 126 165 127 166 int Ext3Lookup(struct VNode** retVal,struct VNode* dir,char* name,int nameLength) 128 167 { 129 inti=0;168 DWORD i=0; 130 169 struct Ext3DirEntry* ext3Entry; 131 170 int bytesPerSec=BYTES_PER_SECTOR(dir->superBlock); 132 171 133 while (i <dir->size)172 while (i < dir->size) 134 173 { 135 174 int block=i/bytesPerSec;