Whamcloud - gitweb
debugfs.c (kill_file_by_inode): Only iterate over the inode to
authorTheodore Ts'o <tytso@mit.edu>
Fri, 19 Nov 2004 19:39:14 +0000 (14:39 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 19 Nov 2004 19:39:14 +0000 (14:39 -0500)
release blocks if the inode has them; otherwise attempting
to rm devices and fast symlinks will lead to errors.
(Addresses Sourceforge Bug #954741 and #957244)

debugfs/ChangeLog
debugfs/debugfs.c

index 34e16c1..315a4f0 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-19  Theodore Ts'o  <tytso@mit.edu>
+
+       * debugfs.c (kill_file_by_inode): Only iterate over the inode to
+               release blocks if the inode has them; otherwise attempting
+               to rm devices and fast symlinks will lead to errors.
+               (Addresses Sourceforge Bug #954741 and #957244)
+
 2004-07-28  Theodore Ts'o  <tytso@mit.edu>
 
        * debugfs.c, debugfs.8.in: Add new option -d which allows the
index 89b9d6c..dab49d4 100644 (file)
@@ -1372,6 +1372,8 @@ static void kill_file_by_inode(ext2_ino_t inode)
        inode_buf.i_dtime = time(NULL);
        if (debugfs_write_inode(inode, &inode_buf, 0))
                return;
+       if (!ext2fs_inode_has_valid_blocks(&inode_buf))
+               return;
 
        ext2fs_block_iterate(current_fs, inode, 0, NULL,
                             release_blocks_proc, NULL);