On Fri, Mar 5, 2010 at 6:37 AM, nidhi mittal hada
<[email protected]> wrote:
>
> hi all
> I created a loop device
> /dev/loop0 ------------>with the image file ---------->file.img
> then
> mkfs and
> mount /dev/loop0 to /mnt
>
> cd /mnt
> created files a.c , b.c
> rm file.img  ------- removed file.img
>
> cd /mnt
> still i am able to see a.c b.c here
> How are these files present here ?
> they should have been deleted as underlying storage file is no where present
> !!

Nidhi,

For this think of rm as what it really is "unlink".

When you unlink a file all that happens is the directory entry for
that link is tagged as deleted / reusable, and the link count field in
the inode is decremented by one.

After the decrement there is code to do:

if (inode.link_count == 0 and inode.is_open == 0) then delete inode
and associated data blocks.

When your loop mount is unmounted it should close the fd associated
with the image file and invoke the above logic again which I assume at
that point will cause the inode and data blocks to be freed up.

Greg

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to