pvfs: send oplock breaks to none to level2 holders on write/lock requests
authorStefan Metzmacher <metze@samba.org>
Fri, 22 Feb 2008 15:34:50 +0000 (16:34 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 26 Feb 2008 08:32:58 +0000 (09:32 +0100)
metze
(This used to be commit b8c42a1ff8fd4131ef2a1ad92a7405a2e4d335d3)

source4/ntvfs/posix/pvfs_lock.c
source4/ntvfs/posix/pvfs_write.c

index 0796286b7e2251bef30dd74a11ded41eed344432..baa92880f13d570e8c6cb6b33082a67e05a070fc 100644 (file)
@@ -307,6 +307,9 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
                return NT_STATUS_FILE_IS_A_DIRECTORY;
        }
 
+       status = pvfs_break_level2_oplocks(f);
+       NT_STATUS_NOT_OK_RETURN(status);
+
        if (lck->lockx.in.timeout != 0 && 
            (req->async_states->state & NTVFS_ASYNC_STATE_MAY_ASYNC)) {
                pending = talloc(f, struct pvfs_pending_lock);
index 5a11f01952bb19e4f91524b02315b82cf1c9837d..dda8c8340738e4b8d16e1f12200ab83934d3a6a7 100644 (file)
@@ -57,7 +57,10 @@ NTSTATUS pvfs_write(struct ntvfs_module_context *ntvfs,
                                 wr->writex.in.count,
                                 WRITE_LOCK);
        NT_STATUS_NOT_OK_RETURN(status);
-       
+
+       status = pvfs_break_level2_oplocks(f);
+       NT_STATUS_NOT_OK_RETURN(status);
+
        if (f->handle->name->stream_name) {
                ret = pvfs_stream_write(pvfs,
                                        f->handle,