1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

selftest/s3: expose share with FS applicable config

Attempt to determine the underlying test share filesystem using statfs.
If the filesystem is detected and an applicable configuration is
available, then apply it to a new filesystem specific share.
Btrfs is currently the only VFS module to utilize this logic.

Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
David Disseldorp 2013-11-18 14:54:26 +01:00 committed by Jeremy Allison
parent 4e6934ec6c
commit a3839ded47

View File

@ -29,6 +29,25 @@ sub have_ads($) {
return $found_ads;
}
# return smb.conf parameters applicable to @path, based on the underlying
# filesystem type
sub get_fs_specific_conf($$)
{
my ($self, $path) = @_;
my $mods = "";
my $stat_out = `stat --file-system $path` or return "";
if ($stat_out =~ m/Type:\s+btrfs/) {
$mods .= "btrfs ";
}
if ($mods) {
return "vfs objects = $mods";
}
return undef;
}
sub new($$) {
my ($classname, $bindir, $binary_mapping, $srcdir, $server_maxtime) = @_;
my $self = { vars => {},
@ -832,6 +851,8 @@ sub provision($$$$$$)
my $nmbdsockdir="$prefix_abs/nmbd";
unlink($nmbdsockdir);
my $fs_specific_conf = $self->get_fs_specific_conf($shrdir);
##
## create the test directory layout
##
@ -1070,6 +1091,9 @@ sub provision($$$$$$)
kernel share modes = no
kernel oplocks = no
posix locking = no
[fs_specific]
copy = tmp
$fs_specific_conf
[print1]
copy = tmp
printable = yes