Ensure gpfs kernel leases are wrapped in a become_root()/unbecome_root() pair.
authorRalph Wuerthner <ralphw@de.ibm.com>
Wed, 31 Jul 2013 23:33:48 +0000 (16:33 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 1 Aug 2013 01:57:11 +0000 (03:57 +0200)
Ensures correct lease owner for signal delivery.

Signed-off-by: Ralph Wuerthner <ralphw@de.ibm.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Simo Sorce <idra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Aug  1 03:57:11 CEST 2013 on sn-devel-104

source3/modules/vfs_gpfs.c

index 13061c8c3591248accaec7c2c5fcdea29ce3d9bb..4a53bf84e550cc84b6ba653b69d7b3a488d3f585 100644 (file)
@@ -111,7 +111,13 @@ static int vfs_gpfs_setlease(vfs_handle_struct *handle, files_struct *fsp,
        START_PROFILE(syscall_linux_setlease);
 
        if (config->leases) {
+               /*
+                * Ensure the lease owner is root to allow
+                * correct delivery of lease-break signals.
+                */
+               become_root();
                ret = set_gpfs_lease(fsp->fh->fd,leasetype);
+               unbecome_root();
        }
 
        END_PROFILE(syscall_linux_setlease);