Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. static int my_unlink(const char *path)
  2. {
  3.  
  4. int idxNodoI, nodoI;
  5. fprintf(stderr, "--->>>my_del: path %s\n", path);
  6.  
  7.  
  8. if((idxNodoI = findFileByName(&myFileSystem, (char *)path + 1)) == -1) {
  9. return -ENOENT;
  10. }
  11. nodoI = myFileSystem.directory.files[idxNodoI].nodeIdx;
  12.  
  13.  
  14. // Actualizamos el MapaDeBits
  15. int tamBloque = myFileSystem.nodes[nodoI]->numBlocks;
  16. int i, indiceBloque;
  17.  
  18. for (i = 0; i < tamBloque; ++i) {
  19.  
  20. indiceBloque = myFileSystem.nodes[nodoI]->blocks[i];
  21. myFileSystem.bitMap[indiceBloque] = 0;
  22. }
  23.  
  24. // Actualizamos el NodoI
  25. myFileSystem.nodes[nodoI]->freeNode = true;
  26. myFileSystem.nodes[nodoI]->numBlocks = 0;
  27. myFileSystem.nodes[nodoI]->fileSize = 0;
  28.  
  29. // Actualizamos mi SistemaDeFicheros
  30. myFileSystem.numFreeNodes++;
  31.  
  32.  
  33. // Actualizamos el Superbloque
  34. myFileSystem.superBlock.numOfFreeBlocks = myQuota(&myFileSystem);
  35.  
  36.  
  37. // Actualizamos el Directorio
  38. myFileSystem.directory.files[idxNodoI].freeFile = true;
  39. myFileSystem.directory.numFiles--;
  40.  
  41.  
  42. // Actualizamos en nuestro disco virtual, y para ello escribimos en nuestro disco-virtual
  43. updateSuperBlock(&myFileSystem);
  44. updateDirectory(&myFileSystem);
  45. updateBitmap(&myFileSystem);
  46. updateNode(&myFileSystem, nodoI, myFileSystem.nodes[nodoI]);
  47. sync();
  48.  
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement