summaryrefslogtreecommitdiff
path: root/lib/ext2fs/inode.c
AgeCommit message (Collapse)AuthorFilesLines
2005-04-09Add missing return values in error return cases in the ext2fs library.Theodore Ts'o1-2/+1
(Otherwise we return garbage instead of the error code.)
2005-03-21Fix mke2fs so that it writes the root directory Theodore Ts'o1-1/+6
using ext2fs_write_new_inode(), and fix ext2fs_write_new_inode() so that it initializes i_extra_isize properly.
2005-03-20Fix e2fsck, debugfs, and the ext2fs_mkdir function so that when we createTheodore Ts'o1-0/+26
a new inode we make sure that the extra information in the inode (any extra fields in a large inode and any ea-in-inode information) is cleared. This can happen when e2fsck creates a new root inode or a new lost+found directory, or when the user uses the debugfs write, mknod, or mkdir commands. Otherwise, the newly create inode could inherit garbage (or old EA information) from a previously deleted inode.
2005-01-25Add library support for large (EA in inode) inodes. Make sure that garbageTheodore Ts'o1-89/+126
doesn't get written into the reserved portion when writing into filesystems that have large inodes defined.
2004-12-23Avoid some potential inode cache coherency problem caused by using the Theodore Ts'o1-0/+1
byte-swapping options to e2fsck. This was the cause of some hard to reproduce problems that had been reported in the past, and which the resize_inode changes tickled in a much more repeatable fashion.
2004-07-28Add ability for debugfs to use a separate source of data blocks whenTheodore Ts'o1-2/+5
reading from an e2image file. (New -d option) Add new functions ext2fs_get_data_io, ext2fs_set_data_io, ext2fs_rewrite_to_io to libext2fs library.
2003-12-07Fix gcc -Wall nitpicksTheodore Ts'o1-4/+6
2003-08-01ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem() Theodore Ts'o1-18/+15
all now take a 'void *' instead of a 'void **' in order to avoid pointer aliasing problems with GCC 3.x.
2001-06-13ChangeLog, dumpe2fs.c, mke2fs.c:Theodore Ts'o1-1/+1
dumpe2fs.c: Use WORDS_BIGENDIAN to determine whether or not we're (not) using i386 byte order. dumpe2fs.c, mke2fs.c: Stop using the compatibility badblocks function, and use the ext2fs_badblocks_* functions instead. ChangeLog, inode.c, tst_iscan.c: inode.c, tst_iscan.c: Stop using the compatibility badblocks function, and use the ext2fs_badblocks_* functions instead. ChangeLog, badblocks.c: badblocks.c: Stop using the compatibility badblocks function, and use the ext2fs_badblocks_* functions instead.
2001-06-11ChangeLog, Makefile.in, swapfs.c, unix.c:Theodore Ts'o1-0/+8
Makefile.in: Add message.c and swapfs.c to the list of source files to build the make depend. swapfs.c, unix.c: Only support the -s and -S options to e2fsck if ENABLE_SWAPFS is defined. Many files: ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c, inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only include the byte-swapping logic if ENABLE_SWAPFS is turned on or if we're on a big-endian machine. initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to set EXT2_FLAG_SWAP_BYTES, instead of using ext2fs_native_flag. native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by autoconf to determine whether or not return EXT2_FLAG_SWAP_BYTES.
2001-05-14Many files:Theodore Ts'o1-5/+0
alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c, bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c, check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c, dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c, expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c, freefs.c, get_pathname.c, getsize.c, icount.c, imager.c, initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c, newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c, tst_byteswap.c, tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c, write_bb_file.c, ext2_fs.h: Moved file from include/linux. Adjust all files in this directroy to include this file.
2001-05-03Many files:Theodore Ts'o1-8/+18
ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add image_header field in the ext2_filsys structure block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind): inode.c (ext2fs_read_inode): rw_bitmaps.c (read_bitmaps): openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make sure the full bitmap is saved.
2001-01-11Many files:Theodore Ts'o1-8/+8
alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c, bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c, dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c, finddev.c, get_pathname.c, icount.c, inode.c, irel.h, irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c, tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to ext2_ino_t, to protect applications that attempt to compile -D_FILE_OFFSET_BITS=64, since this inexplicably changes ino_t(!?). So we use ext2_ino_t to avoid an unexpected ABI change.
2000-11-12ChangeLog, inode.c:Theodore Ts'o1-3/+17
inode.c (ext2fs_flush_icache): Add new function ext2fs_flush_icache() which flushes the internal inode cache. Applications which modify the inode table blocks directly must call this function.
1999-01-08ChangeLog, inode.c:Theodore Ts'o1-2/+2
inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if the inode number is zero; if it's zero, return EXT2_ET_BAD_INODE_NUM. ChangeLog, fsck.c: fsck.c (load_fs_info): If the pass number field is missing, it needs to be treated as zero. libext2fs.texinfo, README: Update for 1.14 release.
1998-06-27ChangeLog, debugfs.8.in, debugfs.c:Theodore Ts'o1-3/+34
Add a -V option which displays the current version. ChangeLog, unix.c: unix.c (e2fsck_update_progress): Remove unused variables. ChangeLog, inode.c: inode.c (get_next_blockgroup): Fix bug where if get_next_blockgroup() is called early because of a missing inode table in a block group, the current_inode counter wasn't incremented correctly. ChangeLog, tst_uuid.c: tst_uuid.c (main): Fixed bogus declaration of the main's argv parameter. ChangeLog, test_icount.c: test_icount.c (main): Fix main() declaration so that it returns int, not void. Many files: fsck.c (ignore): Remove unused variable cp. chattr.c (fatal_error): tune2fs.c (usage): lsattr.c (usage): dumpe2fs.c (usage): badblocks.c (usage): Remove volatile from declaration. fsck.c: Change use of strdup to be string_copy, since we don't trust what glibc is doing with strdup. (Whatever it is, it isn't pretty.)
1998-02-21.del-ChangeLog~905e7699, image.gz:Theodore Ts'o1-6/+11
Set the immutable flag on the block and character device so that e2fsck notices them as bad devices, and offers to fix them. E2fsck currently only checks devices with the immutable flag set, since otherwise there might be some false positives --- the kernel doesn't always clear the all of i_blocks[n], n>=4, due to a race condition. ChangeLog, inode.c: inode.c (ext2fs_get_next_inode): Always do the check to see if the inode table is missing so that we catch the case where the first block group is missing.
1998-01-19Many files:Theodore Ts'o1-4/+12
inode.c (ext2fs_open_inode_scan): Initialize the group variables so that we don't need to call get_next_blockgroup() the first time around. Saves a bit of time, and prevents us from needing to assign -1 to current_group (which is an unsigned value). icount.c (insert_icount_el): Cast the estimated number of inodes from a float to an ino_t. alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c, bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c, check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c, dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c, expanddir.c, ext2fs.h, fileio.c, freefs.c, get_pathname.c, getsize.c, icount.c, initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c, namei.c, native.c, newdir.c, openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c, tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is defined, then assume all of the ext2-specific header files are in a flat directory. block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast all assignments from void * to be compatible with C++. closefs.c (ext2fs_flush): Add a call to io_channel_flush() to make sure the contents of the disk are flushed to disk. dblist.c (ext2fs_add_dir_block): Change new to be new_entry to avoid C++ namespace clash. bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to avoid C++ namespace clash. ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c, irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c, ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c, unlink.c: Change private to be priv_data (to avoid C++ namespace clash)
1997-12-01Many files:Theodore Ts'o1-1/+0
dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more paranoid about validating the directory counts from the block group information. all files: Don't include stdlib.h anymore; include it in ext2_fs.h, since that file requires stdlib.h ChangeLog, Makefile.in, dirinfo.c: dirinfo.c (e2fsck_add_dir_info): Use ext2fs_get_num_dirs instead of e2fsck_get_num_dirs, which has been removed. Makefile.in (PROGS): Remove @EXTRA_PROGS@, since we don't want to compile and install flushb. ChangeLog, configure.in: Remove @EXTRA_PROGS@, since we aren't using it in 2fsck/Makefile.in anymore ChangeLog, Makefile.in: Install debugfs in /sbin, instead of /usr/sbin. libext2fs.texinfo: Update version string to be 1.12 Makefile.in: Fix bug in find script which made the exclusion list, where a '-' was missing from an -name option.
1997-10-31Many files:Theodore Ts'o1-1/+1
Rename new error codes to have _ET_ in them for consistency.
1997-10-26Many files:Theodore Ts'o1-28/+37
Added definition of ext2fs_get_mem, ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and changed all library routines to use these wrapper functions.
1997-10-25Many files:Theodore Ts'o1-9/+6
alloc.c (ext2fs_alloc_block): New function which allocates a block and updates the filesystem accounting records appropriately. ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY, EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL, EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY Change various library files to use these functions instead of EINVAL, ENOENT, etc. ChangeLog, pass1.c, pass3.c: pass3.c (get_lost_and_found): Check error return of EXT2_FILE_NOT_FOUND instead of ENOTDIR pass1.c (pass1_check_directory): Return EXT2_NO_DIRECTORY instead of ENOTDIR expect.icount: Change expected error string to be "Invalid argument passed to ext2 library" instead of just "Invalid argument"
1997-10-19Many files:Theodore Ts'o1-0/+4
Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H
1997-10-03ChangeLog, bmove.c, icount.c, inode.c, llseek.c:Theodore Ts'o1-3/+6
llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek() icount.c (ext2fs_icount_validate): bmove.c (process_block): Fix lint error in type for fprintf(). inode.c (ext2fs_check_directory): Add support for the callback to return the error code EXT2_ET_CALLBACK_NOTHANDLED. ChangeLog, mke2fs.c: Make parse_raid_opts return a void, to fix a -Wall warning.
1997-08-11Many files:Theodore Ts'o1-17/+21
dosio.c: New file to do DOS/BIOS disk accesses. namei.c (open_namei): Make pathlen be of type size_t. llseek.c: Always #include stdlib.h since it's need to define size_t. io.h: Use errcode_t for magic numbers. icount.c (get_icount_el), dupfs.c (ext2fs_dup_handle), dblist.c (dir_block_cmp): Use size_t where appropriate. read_bb.c (ext2fs_read_bb_inode), cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t and size_t where appropriate. closefs.c (ext2fs_flush): Use dgrp_t instead of int where appropriate. openfs.c (ext2fs_open), check_desc.c (ext2fs_check_desc): Use blk_t instead of int where appropriate. rw_bitmaps.c (read_bitmaps), irel_ma.c, inode.c (ext2fs_write_inode), initialize.c (ext2fs_initialize): brel_ma.c: Fix to make be 16-bit safe. link.c (ext2fs_link), unlink.c (ext2fs_unlink), lookup.c (lookup_proc), ismounted.c (ext2fs_check_if_mounted), block.c (xlate_func): Add #pragma argsused for Turbo C.
1997-08-10Many files:Theodore Ts'o1-0/+2
block.c (ext2fs_block_iterate2): Use retval which is a errcode_t type. bitmaps.c (make_bitmap): Use size_t instead of int where appropriate. bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C. alloc.c (ext2fs_new_inode): Use ino_t instead of int for the group number. get_pathname.c: Use ino_t instead of int where appropriate. ext2fs.h: Make the magic structure element be errcode_t instead of int. alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c icount.c initialize.c inline.c inode.c irel_ma.c link.c llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H
1997-06-11ChangeLog, inode.c:Theodore Ts'o1-0/+1
Fix bug; the current inode number wasn't being set by the goto_blockgroup function. bmove.c, ext2fs.h: Added new argument to bmove, so that the caller can pass the allocation bitmap. If not specified, the allocation bitmap defaults to fs->block_map.
1997-04-29Many files:Theodore Ts'o1-73/+76
Checkin of e2fsprogs 1.10
1997-04-29Many files:Theodore Ts'o1-0/+8
Checked in e2fsprogs 1.08.
1997-04-29Many files:Theodore Ts'o1-37/+235
Checked in e2fsprogs-1.07
1997-04-29Many files:Theodore Ts'o1-8/+8
Checked in e2fsprogs 1.06
1997-04-29Many files:Theodore Ts'o1-40/+67
Checked in e2fsprogs 1.05
1997-04-26Many files:Theodore Ts'o1-61/+149
Checkin of e2fsprogs 1.03.
1997-04-26Many files:Theodore Ts'o1-10/+47
Checked in e2fsprogs 0.5c
1997-04-26Many files:Theodore Ts'o1-9/+51
Checkin of e2fsprogs 0.5b
1997-04-26Many files:Theodore Ts'o1-0/+231
Checkin of e2fsprogs 0.5b