mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-27 03:54:19 +08:00
Merge branch 'maint' into next
This commit is contained in:
commit
a935b93dca
84
configure
vendored
84
configure
vendored
@ -13113,12 +13113,13 @@ _ACEOF
|
||||
fi
|
||||
|
||||
if test -n "$BLKID_CMT"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing blkid_probe_all" >&5
|
||||
$as_echo_n "checking for library containing blkid_probe_all... " >&6; }
|
||||
if ${ac_cv_search_blkid_probe_all+:} false; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_probe_get_topology in -lblkid" >&5
|
||||
$as_echo_n "checking for blkid_probe_get_topology in -lblkid... " >&6; }
|
||||
if ${ac_cv_lib_blkid_blkid_probe_get_topology+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lblkid $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
@ -13128,44 +13129,69 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char blkid_probe_all ();
|
||||
char blkid_probe_get_topology ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return blkid_probe_all ();
|
||||
return blkid_probe_get_topology ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
for ac_lib in '' blkid; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
ac_res=-l$ac_lib
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
fi
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_search_blkid_probe_all=$ac_res
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_blkid_blkid_probe_get_topology=yes
|
||||
else
|
||||
ac_cv_lib_blkid_blkid_probe_get_topology=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext
|
||||
if ${ac_cv_search_blkid_probe_all+:} false; then :
|
||||
break
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
done
|
||||
if ${ac_cv_search_blkid_probe_all+:} false; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_probe_get_topology" >&5
|
||||
$as_echo "$ac_cv_lib_blkid_blkid_probe_get_topology" >&6; }
|
||||
if test "x$ac_cv_lib_blkid_blkid_probe_get_topology" = xyes; then :
|
||||
$as_echo "#define HAVE_BLKID_PROBE_GET_TOPOLOGY 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_probe_enable_partitions in -lblkid" >&5
|
||||
$as_echo_n "checking for blkid_probe_enable_partitions in -lblkid... " >&6; }
|
||||
if ${ac_cv_lib_blkid_blkid_probe_enable_partitions+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_cv_search_blkid_probe_all=no
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lblkid $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char blkid_probe_enable_partitions ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return blkid_probe_enable_partitions ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_blkid_blkid_probe_enable_partitions=yes
|
||||
else
|
||||
ac_cv_lib_blkid_blkid_probe_enable_partitions=no
|
||||
fi
|
||||
rm conftest.$ac_ext
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_blkid_probe_all" >&5
|
||||
$as_echo "$ac_cv_search_blkid_probe_all" >&6; }
|
||||
ac_res=$ac_cv_search_blkid_probe_all
|
||||
if test "$ac_res" != no; then :
|
||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_probe_enable_partitions" >&5
|
||||
$as_echo "$ac_cv_lib_blkid_blkid_probe_enable_partitions" >&6; }
|
||||
if test "x$ac_cv_lib_blkid_blkid_probe_enable_partitions" = xyes; then :
|
||||
$as_echo "#define HAVE_BLKID_PROBE_ENABLE_PARTITIONS 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
@ -13173,7 +13199,7 @@ fi
|
||||
if test -n "$DLOPEN_LIB" ; then
|
||||
ac_cv_func_dlopen=yes
|
||||
fi
|
||||
for ac_func in __secure_getenv add_key backtrace blkid_probe_get_topology blkid_probe_enable_partitions chflags dlopen fadvise64 fallocate fallocate64 fchown fcntl fdatasync fstat64 fsync ftruncate64 futimes getcwd getdtablesize gethostname getmntinfo getpwuid_r getrlimit getrusage jrand48 keyctl llistxattr llseek lseek64 mallinfo mbstowcs memalign mempcpy mmap msync nanosleep open64 pathconf posix_fadvise posix_fadvise64 posix_memalign prctl pread pwrite pread64 pwrite64 secure_getenv setmntent setresgid setresuid snprintf srandom stpcpy strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime utimes valloc
|
||||
for ac_func in __secure_getenv add_key backtrace chflags dlopen fadvise64 fallocate fallocate64 fchown fcntl fdatasync fstat64 fsync ftruncate64 futimes getcwd getdtablesize gethostname getmntinfo getpwuid_r getrlimit getrusage jrand48 keyctl llistxattr llseek lseek64 mallinfo mbstowcs memalign mempcpy mmap msync nanosleep open64 pathconf posix_fadvise posix_fadvise64 posix_memalign prctl pread pwrite pread64 pwrite64 secure_getenv setmntent setresgid setresuid snprintf srandom stpcpy strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime utimes valloc
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
|
11
configure.ac
11
configure.ac
@ -1114,11 +1114,14 @@ AC_CHECK_MEMBER(struct sockaddr.sa_len,
|
||||
[#include <sys/types.h>
|
||||
#include <sys/socket.h>])
|
||||
dnl
|
||||
dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
|
||||
dnl the system-provided blkid library
|
||||
dnl If we are using the system-provided blkid library, check for
|
||||
dnl the functions added after migrating that library to util-linux
|
||||
dnl
|
||||
if test -n "$BLKID_CMT"; then
|
||||
AC_SEARCH_LIBS([blkid_probe_all], [blkid])
|
||||
AC_CHECK_LIB(blkid, blkid_probe_get_topology,
|
||||
AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1))
|
||||
AC_CHECK_LIB(blkid, blkid_probe_enable_partitions,
|
||||
AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1))
|
||||
fi
|
||||
dnl
|
||||
if test -n "$DLOPEN_LIB" ; then
|
||||
@ -1128,8 +1131,6 @@ AC_CHECK_FUNCS(m4_flatten([
|
||||
__secure_getenv
|
||||
add_key
|
||||
backtrace
|
||||
blkid_probe_get_topology
|
||||
blkid_probe_enable_partitions
|
||||
chflags
|
||||
dlopen
|
||||
fadvise64
|
||||
|
@ -81,9 +81,10 @@ static errcode_t set_selinux_xattr(ext2_filsys fs, ext2_ino_t ino,
|
||||
retval = selabel_lookup(params->sehnd, &secontext, params->filename,
|
||||
inode.i_mode);
|
||||
if (retval < 0) {
|
||||
com_err(__func__, retval,
|
||||
int saved_errno = errno;
|
||||
com_err(__func__, errno,
|
||||
_("searching for label \"%s\""), params->filename);
|
||||
return retval;
|
||||
return saved_errno;
|
||||
}
|
||||
|
||||
retval = ino_add_xattr(fs, ino, "security." XATTR_SELINUX_SUFFIX,
|
||||
@ -187,7 +188,7 @@ static errcode_t set_timestamp(ext2_filsys fs, ext2_ino_t ino,
|
||||
}
|
||||
retval = lstat(src_filename, &stat);
|
||||
if (retval < 0) {
|
||||
com_err(__func__, retval,
|
||||
com_err(__func__, errno,
|
||||
_("while lstat file %s"), src_filename);
|
||||
goto end;
|
||||
}
|
||||
@ -339,18 +340,19 @@ errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out,
|
||||
if (nopt > 0) {
|
||||
sehnd = selabel_open(SELABEL_CTX_FILE, seopts, nopt);
|
||||
if (!sehnd) {
|
||||
com_err(__func__, -EINVAL,
|
||||
int saved_errno = errno;
|
||||
com_err(__func__, errno,
|
||||
_("while opening file contexts \"%s\""),
|
||||
seopts[0].value);
|
||||
return -EINVAL;
|
||||
return saved_errno;
|
||||
}
|
||||
}
|
||||
#else
|
||||
sehnd = selinux_android_file_context_handle();
|
||||
if (!sehnd) {
|
||||
com_err(__func__, -EINVAL,
|
||||
com_err(__func__, EINVAL,
|
||||
_("while opening android file_contexts"));
|
||||
return -EINVAL;
|
||||
return EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -848,7 +848,7 @@ void internal_dump_inode(FILE *out, const char *prefix,
|
||||
if (is_large_inode && large_inode->i_extra_isize >= 32)
|
||||
fprintf(out, " Project: %5d", large_inode->i_projid);
|
||||
fputs(" Size: ", out);
|
||||
if (LINUX_S_ISREG(inode->i_mode))
|
||||
if (LINUX_S_ISREG(inode->i_mode) || LINUX_S_ISDIR(inode->i_mode))
|
||||
fprintf(out, "%llu\n", EXT2_I_SIZE(inode));
|
||||
else
|
||||
fprintf(out, "%d\n", inode->i_size);
|
||||
|
@ -152,9 +152,6 @@ static int list_dir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
|
||||
fprintf(ls->f, "(%d) %5d %5d ",
|
||||
ext2fs_dirent_file_type(dirent),
|
||||
inode_uid(inode), inode_gid(inode));
|
||||
if (LINUX_S_ISDIR(inode.i_mode))
|
||||
fprintf(ls->f, "%5d", inode.i_size);
|
||||
else
|
||||
fprintf(ls->f, "%5llu", EXT2_I_SIZE(&inode));
|
||||
fprintf(ls->f, " %s ", datestr);
|
||||
print_filename(ls->f, dirent, options);
|
||||
|
@ -44,6 +44,7 @@ cc_defaults {
|
||||
e2fsck_libs = [
|
||||
"libext2fs",
|
||||
"libext2_blkid",
|
||||
"libext2_com_err",
|
||||
"libext2_uuid",
|
||||
"libext2_quota",
|
||||
"libext2_e2p",
|
||||
|
@ -3647,9 +3647,12 @@ static int process_block(ext2_filsys fs,
|
||||
}
|
||||
}
|
||||
|
||||
if (p->is_dir && blockcnt > (1 << (21 - fs->super->s_log_block_size)))
|
||||
if (p->is_dir && !ext2fs_has_feature_largedir(fs->super) &&
|
||||
blockcnt > (1 << (21 - fs->super->s_log_block_size)))
|
||||
problem = PR_1_TOOBIG_DIR;
|
||||
if (p->is_reg && p->num_blocks+1 >= p->max_blocks)
|
||||
if (p->is_dir && p->num_blocks + 1 >= p->max_blocks)
|
||||
problem = PR_1_TOOBIG_DIR;
|
||||
if (p->is_reg && p->num_blocks + 1 >= p->max_blocks)
|
||||
problem = PR_1_TOOBIG_REG;
|
||||
if (!p->is_dir && !p->is_reg && blockcnt > 0)
|
||||
problem = PR_1_TOOBIG_SYMLINK;
|
||||
|
@ -91,24 +91,14 @@ cc_library {
|
||||
"test_io.c",
|
||||
],
|
||||
shared_libs: [
|
||||
"libext2_com_err",
|
||||
"libsparse",
|
||||
"libz",
|
||||
],
|
||||
whole_static_libs: [
|
||||
"libext2_com_err"
|
||||
],
|
||||
cflags: ["-Wno-unused-parameter"],
|
||||
target: {
|
||||
host: {
|
||||
// Consider removing this library as a whole for the host. It is not
|
||||
// in the android side.
|
||||
whole_static_libs: ["libext2_com_err"],
|
||||
},
|
||||
android: {
|
||||
shared_libs: [
|
||||
"libext2_com_err",
|
||||
"libext2_uuid",
|
||||
],
|
||||
shared_libs: [ "libext2_uuid" ],
|
||||
},
|
||||
windows: {
|
||||
enabled: true,
|
||||
|
@ -21,6 +21,7 @@ cc_library {
|
||||
shared_libs: [
|
||||
"libext2fs",
|
||||
"libext2_blkid",
|
||||
"libext2_com_err",
|
||||
],
|
||||
|
||||
target: {
|
||||
|
@ -21,8 +21,9 @@ cc_library {
|
||||
],
|
||||
cflags: ["-Wno-error=format-extra-args"],
|
||||
shared_libs: [
|
||||
"libext2_quota",
|
||||
"libext2fs",
|
||||
"libext2_com_err",
|
||||
"libext2_quota",
|
||||
],
|
||||
system_shared_libs: ["libc", "libdl"],
|
||||
export_include_dirs: ["."],
|
||||
@ -118,6 +119,7 @@ cc_defaults {
|
||||
|
||||
tune2fs_libs = [
|
||||
"libext2_blkid",
|
||||
"libext2_com_err",
|
||||
"libext2_quota",
|
||||
"libext2_uuid",
|
||||
"libext2_e2p",
|
||||
@ -271,3 +273,18 @@ cc_binary {
|
||||
],
|
||||
system_shared_libs: ["libc", "libdl"],
|
||||
}
|
||||
|
||||
//##########################################################################
|
||||
// Build filefrag
|
||||
|
||||
cc_binary {
|
||||
name: "filefrag",
|
||||
host_supported: true,
|
||||
defaults: ["e2fsprogs-defaults"],
|
||||
|
||||
srcs: ["filefrag.c"],
|
||||
shared_libs: [
|
||||
"libext2fs",
|
||||
],
|
||||
system_shared_libs: ["libc", "libdl"],
|
||||
}
|
||||
|
@ -438,7 +438,7 @@ static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file,
|
||||
ptr += blen;
|
||||
continue;
|
||||
}
|
||||
err = ext2fs_file_lseek(e2_file, off + bpos,
|
||||
err = ext2fs_file_llseek(e2_file, off + bpos,
|
||||
EXT2_SEEK_SET, NULL);
|
||||
if (err)
|
||||
goto fail;
|
||||
@ -480,8 +480,8 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf,
|
||||
if (hole < 0)
|
||||
return EXT2_ET_UNIMPLEMENTED;
|
||||
|
||||
data_blk = data & ~(fs->blocksize - 1);
|
||||
hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1);
|
||||
data_blk = data & ~(off_t)(fs->blocksize - 1);
|
||||
hole_blk = (hole + (off_t)(fs->blocksize - 1)) & ~(off_t)(fs->blocksize - 1);
|
||||
err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf,
|
||||
zerobuf);
|
||||
if (err)
|
||||
|
@ -15,6 +15,7 @@ cc_binary {
|
||||
],
|
||||
shared_libs: [
|
||||
"libext2fs",
|
||||
"libext2_com_err",
|
||||
"libext2_e2p",
|
||||
"libext2_uuid",
|
||||
"libext2_blkid",
|
||||
|
Loading…
Reference in New Issue
Block a user