On Wed, Apr 07, 2010 at 05:44:20PM -0700, Harshavardhana wrote: > Hi Everyone, > > Recently i created a snapshot of an existing volume which had > some amount of data. > Now that after creating the snapshot i have tried deleting the > same snapshot. But i am > getting ENOTEMPTY for "rmdir". But when i see the actual files > inside are deleted > not the parent directory. > > From the code it looks like > > if (inode->i_size > BTRFS_EMPTY_DIR_SIZE || > inode->i_ino == BTRFS_FIRST_FREE_OBJECTID) > return -ENOTEMPTY; > > Why would "unlink" succeeds for the files inside the > directory?, yet returning ENOTEMPTY
You need to use the snapshot deletion ioctl to actually delete the snapshot. > > This looks odd after this, i went ahead and tried deleting the > the existing volume itself > same result. > > So i was wondering if at all this is supposed to work this way, > do i need to use "btrfs" > commands to delete subvolumes always? and their relative snapshots?. Yes. We could add support for doing this inside rm, it isn't a huge amount of code. > > But either in that case too returning ENOTEMPTY does confuse a > user a lot. Isn't it valid > just by returning EPERM will explain a lot to users saying that > this is a snapshot of a > subvolume or a parent subvolume which is not supposed to be > deleted this way. Good point, eperm might be more intuitive. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html