Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int my_unlink(const char *path)
- {
- int idxNodoI, nodoI;
- fprintf(stderr, "--->>>my_del: path %s\n", path);
- if((idxNodoI = findFileByName(&myFileSystem, (char *)path + 1)) == -1) {
- return -ENOENT;
- }
- nodoI = myFileSystem.directory.files[idxNodoI].nodeIdx;
- // Actualizamos el MapaDeBits
- int tamBloque = myFileSystem.nodes[nodoI]->numBlocks;
- int i, indiceBloque;
- for (i = 0; i < tamBloque; ++i) {
- indiceBloque = myFileSystem.nodes[nodoI]->blocks[i];
- myFileSystem.bitMap[indiceBloque] = 0;
- }
- // Actualizamos el NodoI
- myFileSystem.nodes[nodoI]->freeNode = true;
- myFileSystem.nodes[nodoI]->numBlocks = 0;
- myFileSystem.nodes[nodoI]->fileSize = 0;
- // Actualizamos mi SistemaDeFicheros
- myFileSystem.numFreeNodes++;
- // Actualizamos el Superbloque
- myFileSystem.superBlock.numOfFreeBlocks = myQuota(&myFileSystem);
- // Actualizamos el Directorio
- myFileSystem.directory.files[idxNodoI].freeFile = true;
- myFileSystem.directory.numFiles--;
- // Actualizamos en nuestro disco virtual, y para ello escribimos en nuestro disco-virtual
- updateSuperBlock(&myFileSystem);
- updateDirectory(&myFileSystem);
- updateBitmap(&myFileSystem);
- updateNode(&myFileSystem, nodoI, myFileSystem.nodes[nodoI]);
- sync();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement