mirror of
https://github.com/samba-team/samba.git
synced 2025-07-30 19:42:05 +03:00
Herb's warning fixes. Also the POSIX locking fix.
We now use our own vfs layer to do get/set acl calls (hurrah!). Jeremy.
This commit is contained in:
@ -34,7 +34,7 @@ int vfswrap_dummy_connect(connection_struct *conn, char *service, char *user)
|
||||
return 0; /* Return >= 0 for success */
|
||||
}
|
||||
|
||||
void vfswrap_dummy_disconnect(void)
|
||||
void vfswrap_dummy_disconnect(connection_struct *conn)
|
||||
{
|
||||
}
|
||||
|
||||
@ -63,6 +63,8 @@ DIR *vfswrap_opendir(connection_struct *conn, char *fname)
|
||||
{
|
||||
DIR *result;
|
||||
|
||||
START_PROFILE(syscall_opendir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (fname == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_opendir()\n");
|
||||
@ -70,6 +72,7 @@ DIR *vfswrap_opendir(connection_struct *conn, char *fname)
|
||||
#endif
|
||||
|
||||
result = opendir(fname);
|
||||
END_PROFILE(syscall_opendir);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -77,6 +80,8 @@ struct dirent *vfswrap_readdir(connection_struct *conn, DIR *dirp)
|
||||
{
|
||||
struct dirent *result;
|
||||
|
||||
START_PROFILE(syscall_readdir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (dirp == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_readdir()\n");
|
||||
@ -84,6 +89,7 @@ struct dirent *vfswrap_readdir(connection_struct *conn, DIR *dirp)
|
||||
#endif
|
||||
|
||||
result = readdir(dirp);
|
||||
END_PROFILE(syscall_readdir);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -91,6 +97,8 @@ int vfswrap_mkdir(connection_struct *conn, char *path, mode_t mode)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_mkdir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_mkdir()\n");
|
||||
@ -98,6 +106,7 @@ int vfswrap_mkdir(connection_struct *conn, char *path, mode_t mode)
|
||||
#endif
|
||||
|
||||
result = mkdir(path, mode);
|
||||
END_PROFILE(syscall_mkdir);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -105,6 +114,8 @@ int vfswrap_rmdir(connection_struct *conn, char *path)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_rmdir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_rmdir()\n");
|
||||
@ -112,6 +123,7 @@ int vfswrap_rmdir(connection_struct *conn, char *path)
|
||||
#endif
|
||||
|
||||
result = rmdir(path);
|
||||
END_PROFILE(syscall_rmdir);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -119,6 +131,8 @@ int vfswrap_closedir(connection_struct *conn, DIR *dirp)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_closedir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (dirp == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_closedir()\n");
|
||||
@ -126,6 +140,7 @@ int vfswrap_closedir(connection_struct *conn, DIR *dirp)
|
||||
#endif
|
||||
|
||||
result = closedir(dirp);
|
||||
END_PROFILE(syscall_closedir);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -135,6 +150,8 @@ int vfswrap_open(connection_struct *conn, char *fname, int flags, mode_t mode)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_open);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (fname == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_open()\n");
|
||||
@ -142,6 +159,7 @@ int vfswrap_open(connection_struct *conn, char *fname, int flags, mode_t mode)
|
||||
#endif
|
||||
|
||||
result = sys_open(fname, flags, mode);
|
||||
END_PROFILE(syscall_open);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -149,7 +167,10 @@ int vfswrap_close(files_struct *fsp, int fd)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_close);
|
||||
|
||||
result = close(fd);
|
||||
END_PROFILE(syscall_close);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -157,6 +178,8 @@ ssize_t vfswrap_read(files_struct *fsp, int fd, char *data, size_t n)
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
START_PROFILE_BYTES(syscall_read, n);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (data == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_read()\n");
|
||||
@ -164,6 +187,7 @@ ssize_t vfswrap_read(files_struct *fsp, int fd, char *data, size_t n)
|
||||
#endif
|
||||
|
||||
result = read(fd, data, n);
|
||||
END_PROFILE(syscall_read);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -171,6 +195,8 @@ ssize_t vfswrap_write(files_struct *fsp, int fd, char *data, size_t n)
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
START_PROFILE_BYTES(syscall_write, n);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (data == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_write()\n");
|
||||
@ -178,6 +204,7 @@ ssize_t vfswrap_write(files_struct *fsp, int fd, char *data, size_t n)
|
||||
#endif
|
||||
|
||||
result = write(fd, data, n);
|
||||
END_PROFILE(syscall_write);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -185,7 +212,10 @@ SMB_OFF_T vfswrap_lseek(files_struct *fsp, int filedes, SMB_OFF_T offset, int wh
|
||||
{
|
||||
SMB_OFF_T result;
|
||||
|
||||
START_PROFILE(syscall_lseek);
|
||||
|
||||
result = sys_lseek(filedes, offset, whence);
|
||||
END_PROFILE(syscall_lseek);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -193,6 +223,8 @@ int vfswrap_rename(connection_struct *conn, char *old, char *new)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_rename);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if ((old == NULL) || (new == NULL)) {
|
||||
smb_panic("NULL pointer passed to vfswrap_rename()\n");
|
||||
@ -200,13 +232,20 @@ int vfswrap_rename(connection_struct *conn, char *old, char *new)
|
||||
#endif
|
||||
|
||||
result = rename(old, new);
|
||||
END_PROFILE(syscall_rename);
|
||||
return result;
|
||||
}
|
||||
|
||||
int vfswrap_fsync(files_struct *fsp, int fd)
|
||||
{
|
||||
#ifdef HAVE_FSYNC
|
||||
return fsync(fd);
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_fsync);
|
||||
|
||||
result = fsync(fd);
|
||||
END_PROFILE(syscall_fsync);
|
||||
return result;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
@ -216,6 +255,8 @@ int vfswrap_stat(connection_struct *conn, char *fname, SMB_STRUCT_STAT *sbuf)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_stat);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if ((fname == NULL) || (sbuf == NULL)) {
|
||||
smb_panic("NULL pointer passed to vfswrap_stat()\n");
|
||||
@ -223,6 +264,7 @@ int vfswrap_stat(connection_struct *conn, char *fname, SMB_STRUCT_STAT *sbuf)
|
||||
#endif
|
||||
|
||||
result = sys_stat(fname, sbuf);
|
||||
END_PROFILE(syscall_stat);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -230,6 +272,8 @@ int vfswrap_fstat(files_struct *fsp, int fd, SMB_STRUCT_STAT *sbuf)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_fstat);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (sbuf == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_fstat()\n");
|
||||
@ -237,6 +281,7 @@ int vfswrap_fstat(files_struct *fsp, int fd, SMB_STRUCT_STAT *sbuf)
|
||||
#endif
|
||||
|
||||
result = sys_fstat(fd, sbuf);
|
||||
END_PROFILE(syscall_fstat);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -244,6 +289,8 @@ int vfswrap_lstat(connection_struct *conn, char *path, SMB_STRUCT_STAT *sbuf)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_lstat);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if ((path == NULL) || (sbuf == NULL)) {
|
||||
smb_panic("NULL pointer passed to vfswrap_lstat()\n");
|
||||
@ -251,6 +298,7 @@ int vfswrap_lstat(connection_struct *conn, char *path, SMB_STRUCT_STAT *sbuf)
|
||||
#endif
|
||||
|
||||
result = sys_lstat(path, sbuf);
|
||||
END_PROFILE(syscall_lstat);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -258,6 +306,8 @@ int vfswrap_unlink(connection_struct *conn, char *path)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_unlink);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_unlink()\n");
|
||||
@ -265,6 +315,7 @@ int vfswrap_unlink(connection_struct *conn, char *path)
|
||||
#endif
|
||||
|
||||
result = unlink(path);
|
||||
END_PROFILE(syscall_unlink);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -272,6 +323,8 @@ int vfswrap_chmod(connection_struct *conn, char *path, mode_t mode)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_chmod);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_chmod()\n");
|
||||
@ -279,6 +332,7 @@ int vfswrap_chmod(connection_struct *conn, char *path, mode_t mode)
|
||||
#endif
|
||||
|
||||
result = chmod(path, mode);
|
||||
END_PROFILE(syscall_chmod);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -286,6 +340,8 @@ int vfswrap_chown(connection_struct *conn, char *path, uid_t uid, gid_t gid)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_chown);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_chown()\n");
|
||||
@ -293,35 +349,50 @@ int vfswrap_chown(connection_struct *conn, char *path, uid_t uid, gid_t gid)
|
||||
#endif
|
||||
|
||||
result = sys_chown(path, uid, gid);
|
||||
END_PROFILE(syscall_chown);
|
||||
return result;
|
||||
}
|
||||
|
||||
int vfswrap_chdir(connection_struct *conn, char *path)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_chdir);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_chdir()\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
return chdir(path);
|
||||
result = chdir(path);
|
||||
END_PROFILE(syscall_chdir);
|
||||
return result;
|
||||
}
|
||||
|
||||
char *vfswrap_getwd(connection_struct *conn, char *path)
|
||||
{
|
||||
char *result;
|
||||
|
||||
START_PROFILE(syscall_getwd);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if (path == NULL) {
|
||||
smb_panic("NULL pointer passed to vfswrap_getwd()\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
return sys_getwd(path);
|
||||
result = sys_getwd(path);
|
||||
END_PROFILE(syscall_getwd);
|
||||
return result;
|
||||
}
|
||||
|
||||
int vfswrap_utime(connection_struct *conn, char *path, struct utimbuf *times)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_utime);
|
||||
|
||||
#ifdef VFS_CHECK_NULL
|
||||
if ((path == NULL) || (times == NULL)) {
|
||||
smb_panic("NULL pointer passed to vfswrap_utime()\n");
|
||||
@ -329,6 +400,7 @@ int vfswrap_utime(connection_struct *conn, char *path, struct utimbuf *times)
|
||||
#endif
|
||||
|
||||
result = utime(path, times);
|
||||
END_PROFILE(syscall_utime);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -336,11 +408,40 @@ int vfswrap_ftruncate(files_struct *fsp, int fd, SMB_OFF_T offset)
|
||||
{
|
||||
int result;
|
||||
|
||||
START_PROFILE(syscall_ftruncate);
|
||||
|
||||
result = sys_ftruncate(fd, offset);
|
||||
END_PROFILE(syscall_ftruncate);
|
||||
return result;
|
||||
}
|
||||
|
||||
BOOL vfswrap_lock(files_struct *fsp, int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type)
|
||||
{
|
||||
return fcntl_lock(fd, op, offset, count,type);
|
||||
BOOL result;
|
||||
|
||||
START_PROFILE(syscall_fcntl_lock);
|
||||
|
||||
result = fcntl_lock(fd, op, offset, count,type);
|
||||
END_PROFILE(syscall_fcntl_lock);
|
||||
return result;
|
||||
}
|
||||
|
||||
size_t vfswrap_fget_nt_acl(files_struct *fsp, int fd, SEC_DESC **ppdesc)
|
||||
{
|
||||
return get_nt_acl(fsp, ppdesc);
|
||||
}
|
||||
|
||||
size_t vfswrap_get_nt_acl(files_struct *fsp, char *name, SEC_DESC **ppdesc)
|
||||
{
|
||||
return get_nt_acl(fsp, ppdesc);
|
||||
}
|
||||
|
||||
BOOL vfswrap_fset_nt_acl(files_struct *fsp, int fd, uint32 security_info_sent, SEC_DESC *psd)
|
||||
{
|
||||
return set_nt_acl(fsp, security_info_sent, psd);
|
||||
}
|
||||
|
||||
BOOL vfswrap_set_nt_acl(files_struct *fsp, char *name, uint32 security_info_sent, SEC_DESC *psd)
|
||||
{
|
||||
return set_nt_acl(fsp, security_info_sent, psd);
|
||||
}
|
||||
|
Reference in New Issue
Block a user