summaryrefslogtreecommitdiffstats
path: root/source/smbd/trans2.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-04-01 11:40:23 +0200
committerKarolin Seeger <kseeger@samba.org>2008-04-12 07:48:24 +0200
commitd02e98760c488d3fb702107549fd24f002e71b32 (patch)
tree8d7f4d376beee84b39a485c10f830bb77548c69e /source/smbd/trans2.c
parent25fcc805558cafa949f899c8c809bcab7e6e391a (diff)
downloadsamba-d02e98760c488d3fb702107549fd24f002e71b32.tar.gz
samba-d02e98760c488d3fb702107549fd24f002e71b32.tar.xz
samba-d02e98760c488d3fb702107549fd24f002e71b32.zip
locking: combine get_delete_on_close_flag() and get_write_time() into get_file_infos()
This means we need to fetch the record only once. metze (cherry picked from commit 4130b873291d39e363184fe4e38dc1f24ebe5056)
Diffstat (limited to 'source/smbd/trans2.c')
-rw-r--r--source/smbd/trans2.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c
index a9e7f5e34c8..8c9f981c8bd 100644
--- a/source/smbd/trans2.c
+++ b/source/smbd/trans2.c
@@ -1398,8 +1398,8 @@ static bool get_lanman2_dir_entry(TALLOC_CTX *ctx,
adate_ts = get_atimespec(&sbuf);
create_date_ts = get_create_timespec(&sbuf,lp_fake_dir_create_times(SNUM(conn)));
- write_time_ts = get_write_time(
- vfs_file_id_from_sbuf(conn, &sbuf));
+ get_file_infos(vfs_file_id_from_sbuf(conn, &sbuf),
+ NULL, &write_time_ts);
if (!null_timespec(write_time_ts)) {
mdate_ts = write_time_ts;
}
@@ -3870,8 +3870,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
}
fileid = vfs_file_id_from_sbuf(conn, &sbuf);
- delete_pending = get_delete_on_close_flag(fileid);
- write_time_ts = get_write_time(fileid);
+ get_file_infos(fileid, &delete_pending, &write_time_ts);
} else {
/*
* Original code - this is an open file.
@@ -3887,8 +3886,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
}
pos = fsp->fh->position_information;
fileid = vfs_file_id_from_sbuf(conn, &sbuf);
- delete_pending = get_delete_on_close_flag(fileid);
- write_time_ts = get_write_time(fileid);
+ get_file_infos(fileid, &delete_pending, &write_time_ts);
access_mask = fsp->access_mask;
}
@@ -3959,12 +3957,11 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
}
fileid = vfs_file_id_from_sbuf(conn, &sbuf);
- delete_pending = get_delete_on_close_flag(fileid);
+ get_file_infos(fileid, &delete_pending, &write_time_ts);
if (delete_pending) {
reply_nterror(req, NT_STATUS_DELETE_PENDING);
return;
}
- write_time_ts = get_write_time(fileid);
}
if (INFO_LEVEL_IS_UNIX(info_level) && !lp_unix_extensions()) {