Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. int dio_clu_sync(struct dio_cluster *cluster)
  2. {
  3. int err;
  4. struct dio_io *io;
  5.  
  6. if (!test_bit(DIO_CLU_DIRTY, &cluster->flags))
  7. return 0;
  8.  
  9. down_write(&cluster->sync_rw_lock);
  10. if (!test_bit(DIO_CLU_DIRTY, &cluster->flags)) {
  11. err = 0;
  12. goto out;
  13. }
  14.  
  15. io = dio_io_alloc(cluster);
  16. if (!io) {
  17. err = -ENOMEM;
  18. goto out;
  19. }
  20.  
  21. set_bit(DIO_IO_WAIT, &io->flags);
  22. dio_submit(WRITE, io);
  23. wait_for_completion(&io->comp);
  24. trace_dio_clu_sync(cluster->index); /* tsk */
  25. err = io->err;
  26. if (!err)
  27. clear_bit(DIO_CLU_DIRTY, &cluster->flags);
  28.  
  29. dio_io_deref(io);
  30. out:
  31. up_write(&cluster->sync_rw_lock);
  32.  
  33. return err;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement