linux-next: next-20101022 broken with unset CONFIG_BKL

From: Sedat Dilek
Date: Fri Oct 22 2010 - 05:13:33 EST


Hi,

I am trying to compile latest linux-next with unset CONFIG_BKL.
Yes, one patch is missing from [1] to be able to compile a BKL-free kernel.
(BTW, the patch needs a trivial fix, see v2 attached to this email.)

With next-20101022 the build breaks (sorry for the output in German):

[ build.log ]
...
LD [M] fs/ceph/ceph.o
LD fs/coda/built-in.o
CC [M] fs/coda/psdev.o
CC [M] fs/cifs/misc.o
/home/sd/src/linux-2.6/linux-2.6.36/debian/build/source_i386_none/fs/coda/psdev.c:
In function âcoda_psdev_writeâ:
/home/sd/src/linux-2.6/linux-2.6.36/debian/build/source_i386_none/fs/coda/psdev.c:140:
error: implicit declaration of function âlock_kernelâ
/home/sd/src/linux-2.6/linux-2.6.36/debian/build/source_i386_none/fs/coda/psdev.c:142:
error: implicit declaration of function âunlock_kernelâ
CC block/blk-settings.o
make[6]: *** [fs/coda/psdev.o] Fehler 1
make[5]: *** [fs/coda] Fehler 2
make[5]: *** Warte auf noch nicht beendete Prozesse...
...

Just FYI.

Kind Regards,
- Sedat -

[1] https://patchwork.kernel.org/patch/262561/
From patchwork Mon Oct 18 17:38:26 2010
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [v2] Remaining BKL users, what to do
Date: Mon, 18 Oct 2010 17:38:26 -0000
From: Arnd Bergmann <arnd@xxxxxxxx>
X-Patchwork-Id: 262561
Message-Id: <201010181938.27076.arnd@xxxxxxxx>
To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: codalist@xxxxxxxxxxxxxxxxxxxxxxxx,
ksummit-2010-discuss@xxxxxxxxxxxxxxxxxxxxxxxxxx,
autofs@xxxxxxxxxxxxxxxx, linux-media@xxxxxxxxxxxxxxx,
dri-devel@xxxxxxxxxxxxxxxxxxxxx,
Mikulas Patocka <mikulas@xxxxxxxxxxxxxxxxxxxxxxxx>,
Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>,
Petr Vandrovec <vandrove@xxxxxxxxxx>, Anders Larsen <al@xxxxxxxxxxx>,
Jan Kara <jack@xxxxxxx>, Evgeniy Dushistov <dushistov@xxxxxxx>,
Ingo Molnar <mingo@xxxxxxx>, netdev@xxxxxxxxxxxxxxx,
Samuel Ortiz <samuel@xxxxxxxxxx>,
Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>,
linux-kernel@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx,
Andrew Hendry <andrew.hendry@xxxxxxxxx>,
David Miller <davem@xxxxxxxxxxxxx>, Jan Harkes <jaharkes@xxxxxxxxxx>,
Bryan Schumaker <bjschuma@xxxxxxxxxx>


diff --git a/fs/Kconfig b/fs/Kconfig
index c386a9f..25ce2dc 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -50,7 +50,6 @@ endif # BLOCK
config FILE_LOCKING
bool "Enable POSIX file locking API" if EMBEDDED
default y
- select BKL # while lockd still uses it.
help
This option enables standard file locking support, required
for filesystems like NFS and for the flock() system
diff --git a/fs/locks.c b/fs/locks.c
index 8b2b6ad..02b6e0e 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -142,6 +142,7 @@ int lease_break_time = 45;

static LIST_HEAD(file_lock_list);
static LIST_HEAD(blocked_list);
+static DEFINE_SPINLOCK(file_lock_lock);

/*
* Protects the two list heads above, plus the inode->i_flock list
@@ -149,13 +150,13 @@ static LIST_HEAD(blocked_list);
*/
void lock_flocks(void)
{
- lock_kernel();
+ spin_lock(&file_lock_lock);
}
EXPORT_SYMBOL_GPL(lock_flocks);

void unlock_flocks(void)
{
- unlock_kernel();
+ spin_unlock(&file_lock_lock);
}
EXPORT_SYMBOL_GPL(unlock_flocks);