Re: no way to swapoff a deleted swap file?

From: Hugh Dickins
Date: Thu Oct 16 2008 - 18:38:45 EST

On Thu, 16 Oct 2008, Peter Zijlstra wrote:
> On Wed, 2008-10-15 at 17:21 -0300, Peter Cordes wrote:
> > I unlinked a swapfile without realizing I was still swapping on it.
> > Now my /proc/swaps looks like this:
> > Filename Type Size Used Priority
> > /var/tmp/EXP/cache/swap/1\040(deleted) file 1288644 1448 -1
> > /var/tmp/EXP/cache/swap/2\040(deleted) file 1433368 0 -2
> >
> > AFAICT, there's nothing I can pass to swapoff(2) that will make the
> > kernel let go of them. If that's the case, please consider this a
> > feature request for a way to do this. Now I'm going to have to reboot
> > before I can mkfs that partition.
> >
> > If kswapd0 had a fd open on the swap files, swapoff /proc/$PID/fd/3
> > could possibly work. But it looks like the files are open but with no
> > user-space accessable file descriptors to them. Which makes sense,
> > except for this case.
> Right, except that kswapd is per node, so we'd either have to add it to
> all kswapd instances or a random one. Also, kthreads don't seem to have
> a files table afaict.
> But yes, I see your problem and it makes sense to look for a nice
> solution.

No immediate answer springs to my mind.

It's not something I'd want to add a new system call for.
I guess we could put a magic file for each swap area
somewhere down in /sys, and allow swapoff to act upon that.

If there were other good reasons to add such files, that
could make sense. But although I'll willingly admit it's a
lacuna, I don't think it's one worth bloating the kernel for.

(I would suggest that Peter keep a second link to his swapfiles
somewhere safer; but that's then open to the converse complaint,
that when he unlinks intentionally but forgets the safe link,
the disk space remains mysteriously in use.)

Sorry for being unhelpful!
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at