Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
  dlm: initialize file_lock struct in GETLK before copying conflicting lock
  dlm: fix plock notify callback to lockd
This commit is contained in:
Linus Torvalds 2009-01-26 10:42:05 -08:00
commit a90e8a75fb

View file

@ -168,7 +168,7 @@ static int dlm_plock_callback(struct plock_op *op)
notify = xop->callback; notify = xop->callback;
if (op->info.rv) { if (op->info.rv) {
notify(flc, NULL, op->info.rv); notify(fl, NULL, op->info.rv);
goto out; goto out;
} }
@ -187,7 +187,7 @@ static int dlm_plock_callback(struct plock_op *op)
(unsigned long long)op->info.number, file, fl); (unsigned long long)op->info.number, file, fl);
} }
rv = notify(flc, NULL, 0); rv = notify(fl, NULL, 0);
if (rv) { if (rv) {
/* XXX: We need to cancel the fs lock here: */ /* XXX: We need to cancel the fs lock here: */
log_print("dlm_plock_callback: lock granted after lock request " log_print("dlm_plock_callback: lock granted after lock request "
@ -304,7 +304,9 @@ int dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,
if (rv == -ENOENT) if (rv == -ENOENT)
rv = 0; rv = 0;
else if (rv > 0) { else if (rv > 0) {
locks_init_lock(fl);
fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK; fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK;
fl->fl_flags = FL_POSIX;
fl->fl_pid = op->info.pid; fl->fl_pid = op->info.pid;
fl->fl_start = op->info.start; fl->fl_start = op->info.start;
fl->fl_end = op->info.end; fl->fl_end = op->info.end;