Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
5e88de04
Commit
5e88de04
authored
Nov 23, 2007
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Import 2.1.39
parent
583c226d
Changes
16
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
159 additions
and
213 deletions
+159
-213
CREDITS
CREDITS
+2
-2
Makefile
Makefile
+1
-1
arch/i386/kernel/irq.h
arch/i386/kernel/irq.h
+3
-28
drivers/char/tty_io.c
drivers/char/tty_io.c
+18
-52
drivers/scsi/eata.c
drivers/scsi/eata.c
+61
-33
drivers/scsi/eata.h
drivers/scsi/eata.h
+1
-1
drivers/scsi/u14-34f.c
drivers/scsi/u14-34f.c
+52
-26
drivers/scsi/u14-34f.h
drivers/scsi/u14-34f.h
+1
-1
fs/binfmt_elf.c
fs/binfmt_elf.c
+0
-1
fs/buffer.c
fs/buffer.c
+6
-1
fs/isofs/dir.c
fs/isofs/dir.c
+5
-0
fs/isofs/namei.c
fs/isofs/namei.c
+2
-24
fs/isofs/rock.c
fs/isofs/rock.c
+5
-38
include/linux/sched.h
include/linux/sched.h
+0
-3
include/linux/sunrpc/clnt.h
include/linux/sunrpc/clnt.h
+1
-1
mm/memory.c
mm/memory.c
+1
-1
No files found.
CREDITS
View file @
5e88de04
...
@@ -733,8 +733,8 @@ S: USA
...
@@ -733,8 +733,8 @@ S: USA
N: Alain L. Knaff
N: Alain L. Knaff
E: Alain.Knaff@poboxes.com
E: Alain.Knaff@poboxes.com
D: floppy driver
D: floppy driver
S:
2a, rue de l'Acier
S:
19, rue Jean l'Aveugle
S: L-
4505 Differdange
S: L-
1148 Luxembourg-City
S: Luxembourg
S: Luxembourg
N: Gerd Knorr
N: Gerd Knorr
...
...
Makefile
View file @
5e88de04
VERSION
=
2
VERSION
=
2
PATCHLEVEL
=
1
PATCHLEVEL
=
1
SUBLEVEL
=
3
8
SUBLEVEL
=
3
9
ARCH
:=
$(
shell
uname
-m
|
sed
s/i.86/i386/
)
ARCH
:=
$(
shell
uname
-m
|
sed
s/i.86/i386/
)
...
...
arch/i386/kernel/irq.h
View file @
5e88de04
...
@@ -62,32 +62,8 @@ static inline void irq_exit(int cpu, int irq)
...
@@ -62,32 +62,8 @@ static inline void irq_exit(int cpu, int irq)
"mov %dx,%ds\n\t" \
"mov %dx,%ds\n\t" \
"mov %dx,%es\n\t"
"mov %dx,%es\n\t"
/*
* These are used just for the "bad" interrupt handlers,
* which just clear the mask and return..
*/
#define SAVE_MOST \
"cld\n\t" \
"push %es\n\t" \
"push %ds\n\t" \
"pushl %eax\n\t" \
"pushl %edx\n\t" \
"pushl %ecx\n\t" \
"movl $" STR(KERNEL_DS) ",%edx\n\t" \
"mov %dx,%ds\n\t" \
"mov %dx,%es\n\t"
#define RESTORE_MOST \
"popl %ecx\n\t" \
"popl %edx\n\t" \
"popl %eax\n\t" \
"pop %ds\n\t" \
"pop %es\n\t" \
"iret"
#define IRQ_NAME2(nr) nr##_interrupt(void)
#define IRQ_NAME2(nr) nr##_interrupt(void)
#define IRQ_NAME(nr) IRQ_NAME2(IRQ##nr)
#define IRQ_NAME(nr) IRQ_NAME2(IRQ##nr)
#define BAD_IRQ_NAME(nr) IRQ_NAME2(bad_IRQ##nr)
#define GET_CURRENT \
#define GET_CURRENT \
"movl %esp, %ebx\n\t" \
"movl %esp, %ebx\n\t" \
...
@@ -150,15 +126,14 @@ static inline void x86_do_profile (unsigned long eip)
...
@@ -150,15 +126,14 @@ static inline void x86_do_profile (unsigned long eip)
extern
int
_stext
;
extern
int
_stext
;
eip
-=
(
unsigned
long
)
&
_stext
;
eip
-=
(
unsigned
long
)
&
_stext
;
eip
>>=
prof_shift
;
eip
>>=
prof_shift
;
if
(
eip
<
prof_len
)
atomic_inc
((
atomic_t
*
)
&
prof_buffer
[
eip
]);
else
/*
/*
* Dont ignore out-of-bounds EIP values silently,
* Dont ignore out-of-bounds EIP values silently,
* put them into the last histogram slot, so if
* put them into the last histogram slot, so if
* present, they will show up as a sharp peak.
* present, they will show up as a sharp peak.
*/
*/
atomic_inc
((
atomic_t
*
)
&
prof_buffer
[
prof_len
-
1
]);
if
(
eip
>
prof_len
-
1
)
eip
=
prof_len
-
1
;
atomic_inc
((
atomic_t
*
)
&
prof_buffer
[
eip
]);
}
}
}
}
...
...
drivers/char/tty_io.c
View file @
5e88de04
...
@@ -838,7 +838,7 @@ static void release_dev(struct file * filp)
...
@@ -838,7 +838,7 @@ static void release_dev(struct file * filp)
{
{
struct
tty_struct
*
tty
,
*
o_tty
;
struct
tty_struct
*
tty
,
*
o_tty
;
struct
termios
*
tp
,
*
o_tp
,
*
ltp
,
*
o_ltp
;
struct
termios
*
tp
,
*
o_tp
,
*
ltp
,
*
o_ltp
;
struct
task_struct
*
*
p
;
struct
task_struct
*
p
;
int
idx
;
int
idx
;
tty
=
(
struct
tty_struct
*
)
filp
->
private_data
;
tty
=
(
struct
tty_struct
*
)
filp
->
private_data
;
...
@@ -972,14 +972,14 @@ static void release_dev(struct file * filp)
...
@@ -972,14 +972,14 @@ static void release_dev(struct file * filp)
* Make sure there aren't any processes that still think this
* Make sure there aren't any processes that still think this
* tty is their controlling tty.
* tty is their controlling tty.
*/
*/
for
(
p
=
&
LAST_TASK
;
p
>
&
FIRST_TASK
;
--
p
)
{
read_lock
(
&
tasklist_lock
);
if
(
*
p
==
0
)
for_each_task
(
p
)
{
continue
;
if
(
p
->
tty
==
tty
)
if
((
*
p
)
->
tty
==
tty
)
p
->
tty
=
NULL
;
(
*
p
)
->
tty
=
NULL
;
if
(
o_tty
&&
p
->
tty
==
o_tty
)
if
(
o_tty
&&
(
*
p
)
->
tty
==
o_tty
)
p
->
tty
=
NULL
;
(
*
p
)
->
tty
=
NULL
;
}
}
read_unlock
(
&
tasklist_lock
);
/*
/*
* Shutdown the current line discipline, and reset it to
* Shutdown the current line discipline, and reset it to
...
@@ -1216,40 +1216,6 @@ static int tty_fasync(struct inode * inode, struct file * filp, int on)
...
@@ -1216,40 +1216,6 @@ static int tty_fasync(struct inode * inode, struct file * filp, int on)
return
0
;
return
0
;
}
}
#if 0
/*
* XXX does anyone use this anymore?!?
*/
static int do_get_ps_info(unsigned long arg)
{
struct tstruct {
int flag;
int present[NR_TASKS];
struct task_struct tasks[NR_TASKS];
};
struct tstruct *ts = (struct tstruct *)arg;
struct task_struct **p;
char *c, *d;
int i, n = 0;
i = verify_area(VERIFY_WRITE, (void *)arg, sizeof(struct tstruct));
if (i)
return i;
for (p = &FIRST_TASK ; p <= &LAST_TASK ; p++, n++)
if (*p)
{
c = (char *)(*p);
d = (char *)(ts->tasks+n);
for (i=0 ; i<sizeof(struct task_struct) ; i++)
put_user(*c++, d++);
put_user(1, ts->present+n);
}
else
put_user(0, ts->present+n);
return(0);
}
#endif
static
int
tiocsti
(
struct
tty_struct
*
tty
,
char
*
arg
)
static
int
tiocsti
(
struct
tty_struct
*
tty
,
char
*
arg
)
{
{
char
ch
,
mbz
=
0
;
char
ch
,
mbz
=
0
;
...
@@ -1495,7 +1461,7 @@ void do_SAK( struct tty_struct *tty)
...
@@ -1495,7 +1461,7 @@ void do_SAK( struct tty_struct *tty)
#ifdef TTY_SOFT_SAK
#ifdef TTY_SOFT_SAK
tty_hangup
(
tty
);
tty_hangup
(
tty
);
#else
#else
struct
task_struct
*
*
p
;
struct
task_struct
*
p
;
int
session
;
int
session
;
int
i
;
int
i
;
struct
file
*
filp
;
struct
file
*
filp
;
...
@@ -1507,23 +1473,23 @@ void do_SAK( struct tty_struct *tty)
...
@@ -1507,23 +1473,23 @@ void do_SAK( struct tty_struct *tty)
tty
->
ldisc
.
flush_buffer
(
tty
);
tty
->
ldisc
.
flush_buffer
(
tty
);
if
(
tty
->
driver
.
flush_buffer
)
if
(
tty
->
driver
.
flush_buffer
)
tty
->
driver
.
flush_buffer
(
tty
);
tty
->
driver
.
flush_buffer
(
tty
);
for
(
p
=
&
LAST_TASK
;
p
>
&
FIRST_TASK
;
--
p
)
{
read_lock
(
&
tasklist_lock
);
if
(
!
(
*
p
))
for_each_task
(
p
)
{
continue
;
if
((
p
->
tty
==
tty
)
||
if
(((
*
p
)
->
tty
==
tty
)
||
((
session
>
0
)
&&
(
p
->
session
==
session
)))
((
session
>
0
)
&&
((
*
p
)
->
session
==
session
)))
send_sig
(
SIGKILL
,
p
,
1
);
send_sig
(
SIGKILL
,
*
p
,
1
);
else
if
(
p
->
files
)
{
else
if
((
*
p
)
->
files
)
{
for
(
i
=
0
;
i
<
NR_OPEN
;
i
++
)
{
for
(
i
=
0
;
i
<
NR_OPEN
;
i
++
)
{
filp
=
(
*
p
)
->
files
->
fd
[
i
];
filp
=
p
->
files
->
fd
[
i
];
if
(
filp
&&
(
filp
->
f_op
==
&
tty_fops
)
&&
if
(
filp
&&
(
filp
->
f_op
==
&
tty_fops
)
&&
(
filp
->
private_data
==
tty
))
{
(
filp
->
private_data
==
tty
))
{
send_sig
(
SIGKILL
,
*
p
,
1
);
send_sig
(
SIGKILL
,
p
,
1
);
break
;
break
;
}
}
}
}
}
}
}
}
read_unlock
(
&
tasklist_lock
);
#endif
#endif
}
}
...
...
drivers/scsi/eata.c
View file @
5e88de04
This diff is collapsed.
Click to expand it.
drivers/scsi/eata.h
View file @
5e88de04
...
@@ -12,7 +12,7 @@ int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
...
@@ -12,7 +12,7 @@ int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
int
eata2x_abort
(
Scsi_Cmnd
*
);
int
eata2x_abort
(
Scsi_Cmnd
*
);
int
eata2x_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
int
eata2x_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
#define EATA_VERSION "3.
00.09
"
#define EATA_VERSION "3.
10.00
"
#define EATA { \
#define EATA { \
...
...
drivers/scsi/u14-34f.c
View file @
5e88de04
/*
/*
* u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters.
* u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters.
*
*
* 17 May 1997 rev. 3.10 for linux 2.0.30 and 2.1.38
* Use of serial_number_at_timeout in abort and reset processing.
* Use of the __initfunc and __initdata macro in setup code.
* Minor cleanups in the list_statistics code.
*
* 24 Feb 1997 rev. 3.00 for linux 2.0.29 and 2.1.26
* 24 Feb 1997 rev. 3.00 for linux 2.0.29 and 2.1.26
* When loading as a module, parameter passing is now supported
* When loading as a module, parameter passing is now supported
* both in 2.0 and in 2.1 style.
* both in 2.0 and in 2.1 style.
...
@@ -220,10 +225,12 @@
...
@@ -220,10 +225,12 @@
* between increasing or decreasing by minimizing the seek distance between
* between increasing or decreasing by minimizing the seek distance between
* the sector of the commands just completed and the sector of the first
* the sector of the commands just completed and the sector of the first
* command in the list to be sorted.
* command in the list to be sorted.
* Trivial math assures that if there are (Q-1) outstanding request for
* Trivial math assures that the unsorted average seek distance when doing
* random seeks over S sectors, the unsorted average seek distance is S/2,
* random seeks over S sectors is S/3.
* while the sorted average seek distance is S/(Q-1). The seek distance is
* When (Q-1) requests are uniformly distributed over S sectors, the average
* hence divided by a factor (Q-1)/2.
* distance between two adjacent requests is S/((Q-1) + 1), so the sorted
* average seek distance for (Q-1) random requests over S sectors is S/Q.
* The elevator sorting hence divides the seek distance by a factor Q/3.
* The above pure geometric remarks are valid in all cases and the
* The above pure geometric remarks are valid in all cases and the
* driver effectively reduces the seek distance by the predicted factor
* driver effectively reduces the seek distance by the predicted factor
* when there are Q concurrent read i/o operations on the device, but this
* when there are Q concurrent read i/o operations on the device, but this
...
@@ -273,8 +280,16 @@ MODULE_AUTHOR("Dario Ballabio");
...
@@ -273,8 +280,16 @@ MODULE_AUTHOR("Dario Ballabio");
#include <asm/dma.h>
#include <asm/dma.h>
#include <asm/irq.h>
#include <asm/irq.h>
#include "u14-34f.h"
#include "u14-34f.h"
#include<linux/stat.h>
#include <linux/stat.h>
#include<linux/config.h>
#include <linux/config.h>
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,36)
#include <linux/init.h>
#else
#define __initfunc(A) A
#define __initdata
#define __init
#endif
struct
proc_dir_entry
proc_scsi_u14_34f
=
{
struct
proc_dir_entry
proc_scsi_u14_34f
=
{
PROC_SCSI_U14_34F
,
6
,
"u14_34f"
,
PROC_SCSI_U14_34F
,
6
,
"u14_34f"
,
...
@@ -419,7 +434,7 @@ static struct Scsi_Host *sh[MAX_BOARDS + 1];
...
@@ -419,7 +434,7 @@ static struct Scsi_Host *sh[MAX_BOARDS + 1];
static
const
char
*
driver_name
=
"Ux4F"
;
static
const
char
*
driver_name
=
"Ux4F"
;
static
unsigned
int
irqlist
[
MAX_IRQ
],
calls
[
MAX_IRQ
];
static
unsigned
int
irqlist
[
MAX_IRQ
],
calls
[
MAX_IRQ
];
static
unsigned
int
io_port
[]
=
{
static
unsigned
int
io_port
[]
__initdata
=
{
/* Space for MAX_INT_PARAM ports usable while loading as a module */
/* Space for MAX_INT_PARAM ports usable while loading as a module */
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
SKIP
,
...
@@ -534,8 +549,7 @@ static void select_queue_depths(struct Scsi_Host *host, Scsi_Device *devlist) {
...
@@ -534,8 +549,7 @@ static void select_queue_depths(struct Scsi_Host *host, Scsi_Device *devlist) {
return
;
return
;
}
}
static
inline
int
wait_on_busy
(
unsigned
int
iobase
)
{
static
inline
int
wait_on_busy
(
unsigned
int
iobase
,
unsigned
int
loop
)
{
unsigned
int
loop
=
MAXLOOP
;
while
(
inb
(
iobase
+
REG_LCL_INTR
)
&
BSY_ASSERTED
)
while
(
inb
(
iobase
+
REG_LCL_INTR
)
&
BSY_ASSERTED
)
if
(
--
loop
==
0
)
return
TRUE
;
if
(
--
loop
==
0
)
return
TRUE
;
...
@@ -556,7 +570,7 @@ static int board_inquiry(unsigned int j) {
...
@@ -556,7 +570,7 @@ static int board_inquiry(unsigned int j) {
cpp
->
scsi_cdbs_len
=
6
;
cpp
->
scsi_cdbs_len
=
6
;
cpp
->
scsi_cdbs
[
0
]
=
HA_CMD_INQUIRY
;
cpp
->
scsi_cdbs
[
0
]
=
HA_CMD_INQUIRY
;
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
printk
(
"%s: board_inquiry, adapter busy.
\n
"
,
BN
(
j
));
printk
(
"%s: board_inquiry, adapter busy.
\n
"
,
BN
(
j
));
return
TRUE
;
return
TRUE
;
}
}
...
@@ -586,8 +600,8 @@ static int board_inquiry(unsigned int j) {
...
@@ -586,8 +600,8 @@ static int board_inquiry(unsigned int j) {
return
FALSE
;
return
FALSE
;
}
}
static
inline
int
port_detect
(
unsigned
int
port_base
,
unsigned
int
j
,
__initfunc
(
static
inline
int
port_detect
\
Scsi_Host_Template
*
tpnt
)
{
(
unsigned
int
port_base
,
unsigned
int
j
,
Scsi_Host_Template
*
tpnt
)
)
{
unsigned
char
irq
,
dma_channel
,
subversion
,
i
;
unsigned
char
irq
,
dma_channel
,
subversion
,
i
;
unsigned
char
in_byte
;
unsigned
char
in_byte
;
char
*
bus_type
,
dma_name
[
16
];
char
*
bus_type
,
dma_name
[
16
];
...
@@ -748,7 +762,7 @@ static inline int port_detect(unsigned int port_base, unsigned int j,
...
@@ -748,7 +762,7 @@ static inline int port_detect(unsigned int port_base, unsigned int j,
}
}
}
}
if
(
dma_channel
==
NO_DMA
)
sprintf
(
dma_name
,
"%s"
,
"
NO DMA
"
);
if
(
dma_channel
==
NO_DMA
)
sprintf
(
dma_name
,
"%s"
,
"
BMST
"
);
else
sprintf
(
dma_name
,
"DMA %u"
,
dma_channel
);
else
sprintf
(
dma_name
,
"DMA %u"
,
dma_channel
);
for
(
i
=
0
;
i
<
sh
[
j
]
->
can_queue
;
i
++
)
for
(
i
=
0
;
i
<
sh
[
j
]
->
can_queue
;
i
++
)
...
@@ -781,7 +795,7 @@ static inline int port_detect(unsigned int port_base, unsigned int j,
...
@@ -781,7 +795,7 @@ static inline int port_detect(unsigned int port_base, unsigned int j,
return
TRUE
;
return
TRUE
;
}
}
void
u14_34f_setup
(
char
*
str
,
int
*
ints
)
{
__initfunc
(
void
u14_34f_setup
(
char
*
str
,
int
*
ints
)
)
{
int
i
,
argc
=
ints
[
0
];
int
i
,
argc
=
ints
[
0
];
char
*
cur
=
str
,
*
pc
;
char
*
cur
=
str
,
*
pc
;
...
@@ -813,7 +827,7 @@ void u14_34f_setup(char *str, int *ints) {
...
@@ -813,7 +827,7 @@ void u14_34f_setup(char *str, int *ints) {
return
;
return
;
}
}
int
u14_34f_detect
(
Scsi_Host_Template
*
tpnt
)
{
__initfunc
(
int
u14_34f_detect
(
Scsi_Host_Template
*
tpnt
)
)
{
unsigned
long
flags
;
unsigned
long
flags
;
unsigned
int
j
=
0
,
k
;
unsigned
int
j
=
0
,
k
;
...
@@ -983,12 +997,12 @@ int u14_34f_queuecommand(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) {
...
@@ -983,12 +997,12 @@ int u14_34f_queuecommand(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) {
if
(
linked_comm
&&
SCpnt
->
device
->
queue_depth
>
2
if
(
linked_comm
&&
SCpnt
->
device
->
queue_depth
>
2
&&
TLDEV
(
SCpnt
->
device
->
type
))
{
&&
TLDEV
(
SCpnt
->
device
->
type
))
{
HD
(
j
)
->
cp_stat
[
i
]
=
READY
;
HD
(
j
)
->
cp_stat
[
i
]
=
READY
;
flush_dev
(
SCpnt
->
device
,
0
,
j
,
FALSE
);
flush_dev
(
SCpnt
->
device
,
SCpnt
->
request
.
sector
,
j
,
FALSE
);
restore_flags
(
flags
);
restore_flags
(
flags
);
return
0
;
return
0
;
}
}
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
SCpnt
->
result
=
DID_ERROR
<<
16
;
SCpnt
->
result
=
DID_ERROR
<<
16
;
SCpnt
->
host_scribble
=
NULL
;
SCpnt
->
host_scribble
=
NULL
;
printk
(
"%s: qcomm, target %d.%d:%d, pid %ld, adapter busy, DID_ERROR,"
\
printk
(
"%s: qcomm, target %d.%d:%d, pid %ld, adapter busy, DID_ERROR,"
\
...
@@ -1018,7 +1032,8 @@ int u14_34f_abort(Scsi_Cmnd *SCarg) {
...
@@ -1018,7 +1032,8 @@ int u14_34f_abort(Scsi_Cmnd *SCarg) {
cli
();
cli
();
j
=
((
struct
hostdata
*
)
SCarg
->
host
->
hostdata
)
->
board_number
;
j
=
((
struct
hostdata
*
)
SCarg
->
host
->
hostdata
)
->
board_number
;
if
(
SCarg
->
host_scribble
==
NULL
)
{
if
(
SCarg
->
host_scribble
==
NULL
||
SCarg
->
serial_number
!=
SCarg
->
serial_number_at_timeout
)
{
printk
(
"%s: abort, target %d.%d:%d, pid %ld inactive.
\n
"
,
printk
(
"%s: abort, target %d.%d:%d, pid %ld inactive.
\n
"
,
BN
(
j
),
SCarg
->
channel
,
SCarg
->
target
,
SCarg
->
lun
,
SCarg
->
pid
);
BN
(
j
),
SCarg
->
channel
,
SCarg
->
target
,
SCarg
->
lun
,
SCarg
->
pid
);
restore_flags
(
flags
);
restore_flags
(
flags
);
...
@@ -1032,7 +1047,7 @@ int u14_34f_abort(Scsi_Cmnd *SCarg) {
...
@@ -1032,7 +1047,7 @@ int u14_34f_abort(Scsi_Cmnd *SCarg) {
if
(
i
>=
sh
[
j
]
->
can_queue
)
if
(
i
>=
sh
[
j
]
->
can_queue
)
panic
(
"%s: abort, invalid SCarg->host_scribble.
\n
"
,
BN
(
j
));
panic
(
"%s: abort, invalid SCarg->host_scribble.
\n
"
,
BN
(
j
));
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
printk
(
"%s: abort, timeout error.
\n
"
,
BN
(
j
));
printk
(
"%s: abort, timeout error.
\n
"
,
BN
(
j
));
restore_flags
(
flags
);
restore_flags
(
flags
);
return
SCSI_ABORT_ERROR
;
return
SCSI_ABORT_ERROR
;
...
@@ -1101,13 +1116,19 @@ int u14_34f_reset(Scsi_Cmnd *SCarg, unsigned int reset_flags) {
...
@@ -1101,13 +1116,19 @@ int u14_34f_reset(Scsi_Cmnd *SCarg, unsigned int reset_flags) {
if
(
SCarg
->
host_scribble
==
NULL
)
if
(
SCarg
->
host_scribble
==
NULL
)
printk
(
"%s: reset, pid %ld inactive.
\n
"
,
BN
(
j
),
SCarg
->
pid
);
printk
(
"%s: reset, pid %ld inactive.
\n
"
,
BN
(
j
),
SCarg
->
pid
);
if
(
SCarg
->
serial_number
!=
SCarg
->
serial_number_at_timeout
)
{
printk
(
"%s: reset, pid %ld, reset not running.
\n
"
,
BN
(
j
),
SCarg
->
pid
);
restore_flags
(
flags
);
return
SCSI_RESET_NOT_RUNNING
;
}
if
(
HD
(
j
)
->
in_reset
)
{
if
(
HD
(
j
)
->
in_reset
)
{
printk
(
"%s: reset, exit, already in reset.
\n
"
,
BN
(
j
));
printk
(
"%s: reset, exit, already in reset.
\n
"
,
BN
(
j
));
restore_flags
(
flags
);
restore_flags
(
flags
);
return
SCSI_RESET_ERROR
;
return
SCSI_RESET_ERROR
;
}
}
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
printk
(
"%s: reset, exit, timeout error.
\n
"
,
BN
(
j
));
printk
(
"%s: reset, exit, timeout error.
\n
"
,
BN
(
j
));
restore_flags
(
flags
);
restore_flags
(
flags
);
return
SCSI_RESET_ERROR
;
return
SCSI_RESET_ERROR
;
...
@@ -1158,7 +1179,7 @@ int u14_34f_reset(Scsi_Cmnd *SCarg, unsigned int reset_flags) {
...
@@ -1158,7 +1179,7 @@ int u14_34f_reset(Scsi_Cmnd *SCarg, unsigned int reset_flags) {
if
(
SCpnt
==
SCarg
)
arg_done
=
TRUE
;
if
(
SCpnt
==
SCarg
)
arg_done
=
TRUE
;
}
}
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
printk
(
"%s: reset, cannot reset, timeout error.
\n
"
,
BN
(
j
));
printk
(
"%s: reset, cannot reset, timeout error.
\n
"
,
BN
(
j
));
restore_flags
(
flags
);
restore_flags
(
flags
);
return
SCSI_RESET_ERROR
;
return
SCSI_RESET_ERROR
;
...
@@ -1271,7 +1292,7 @@ static inline void reorder(unsigned int j, unsigned long cursec,
...
@@ -1271,7 +1292,7 @@ static inline void reorder(unsigned int j, unsigned long cursec,
unsigned
int
rev
=
FALSE
,
s
=
TRUE
,
r
=
TRUE
;
unsigned
int
rev
=
FALSE
,
s
=
TRUE
,
r
=
TRUE
;
unsigned
int
input_only
=
TRUE
,
overlap
=
FALSE
;
unsigned
int
input_only
=
TRUE
,
overlap
=
FALSE
;
unsigned
long
sl
[
n_ready
],
pl
[
n_ready
],
ll
[
n_ready
];
unsigned
long
sl
[
n_ready
],
pl
[
n_ready
],
ll
[
n_ready
];
unsigned
long
maxsec
=
0
,
minsec
=
ULONG_MAX
,
seek
=
0
;
unsigned
long
maxsec
=
0
,
minsec
=
ULONG_MAX
,
seek
=
0
,
iseek
=
0
;
static
unsigned
int
flushcount
=
0
,
batchcount
=
0
,
sortcount
=
0
;
static
unsigned
int
flushcount
=
0
,
batchcount
=
0
,
sortcount
=
0
;
static
unsigned
int
readycount
=
0
,
ovlcount
=
0
,
inputcount
=
0
;
static
unsigned
int
readycount
=
0
,
ovlcount
=
0
,
inputcount
=
0
;
...
@@ -1282,8 +1303,8 @@ static inline void reorder(unsigned int j, unsigned long cursec,
...
@@ -1282,8 +1303,8 @@ static inline void reorder(unsigned int j, unsigned long cursec,
printk
(
"fc %d bc %d ic %d oc %d rc %d rs %d sc %d re %d"
\
printk
(
"fc %d bc %d ic %d oc %d rc %d rs %d sc %d re %d"
\
" av %ldK as %ldK.
\n
"
,
flushcount
,
batchcount
,
inputcount
,
" av %ldK as %ldK.
\n
"
,
flushcount
,
batchcount
,
inputcount
,
ovlcount
,
readycount
,
readysorted
,
sortcount
,
revcount
,
ovlcount
,
readycount
,
readysorted
,
sortcount
,
revcount
,
seeknosort
/
(
readycount
-
batchcount
+
1
),
seeknosort
/
(
readycount
+
1
),
seeksorted
/
(
readycount
-
batchcount
+
1
));
seeksorted
/
(
readycount
+
1
));
if
(
n_ready
<=
1
)
return
;
if
(
n_ready
<=
1
)
return
;
...
@@ -1311,6 +1332,10 @@ static inline void reorder(unsigned int j, unsigned long cursec,
...
@@ -1311,6 +1332,10 @@ static inline void reorder(unsigned int j, unsigned long cursec,
}
}
if
(
link_statistics
)
{
if
(
cursec
>
sl
[
0
])
seek
+=
cursec
-
sl
[
0
];
else
seek
+=
sl
[
0
]
-
cursec
;
}
if
(
cursec
>
((
maxsec
+
minsec
)
/
2
))
rev
=
TRUE
;
if
(
cursec
>
((
maxsec
+
minsec
)
/
2
))
rev
=
TRUE
;
if
(
!
((
rev
&&
r
)
||
(
!
rev
&&
s
)))
sort
(
sl
,
il
,
n_ready
,
rev
);
if
(
!
((
rev
&&
r
)
||
(
!
rev
&&
s
)))
sort
(
sl
,
il
,
n_ready
,
rev
);
...
@@ -1328,10 +1353,11 @@ static inline void reorder(unsigned int j, unsigned long cursec,
...
@@ -1328,10 +1353,11 @@ static inline void reorder(unsigned int j, unsigned long cursec,
if
(
overlap
)
sort
(
pl
,
il
,
n_ready
,
FALSE
);
if
(
overlap
)
sort
(
pl
,
il
,
n_ready
,
FALSE
);
if
(
link_statistics
)
{
if
(
link_statistics
)
{
if
(
cursec
>
sl
[
0
])
iseek
=
cursec
-
sl
[
0
];
else
iseek
=
sl
[
0
]
-
cursec
;
batchcount
++
;
readycount
+=
n_ready
,
seeknosort
+=
seek
/
1024
;
batchcount
++
;
readycount
+=
n_ready
,
seeknosort
+=
seek
/
1024
;
if
(
input_only
)
inputcount
++
;
if
(
input_only
)
inputcount
++
;
if
(
overlap
)
{
ovlcount
++
;
seeksorted
+=
seek
/
1024
;
}
if
(
overlap
)
{
ovlcount
++
;
seeksorted
+=
seek
/
1024
;
}
else
seeksorted
+=
(
maxsec
-
minsec
)
/
1024
;
else
seeksorted
+=
(
iseek
+
maxsec
-
minsec
)
/
1024
;
if
(
rev
&&
!
r
)
{
revcount
++
;
readysorted
+=
n_ready
;
}
if
(
rev
&&
!
r
)
{
revcount
++
;
readysorted
+=
n_ready
;
}
if
(
!
rev
&&
!
s
)
{
sortcount
++
;
readysorted
+=
n_ready
;
}
if
(
!
rev
&&
!
s
)
{
sortcount
++
;
readysorted
+=
n_ready
;
}
}
}
...
@@ -1375,7 +1401,7 @@ static void flush_dev(Scsi_Device *dev, unsigned long cursec, unsigned int j,
...
@@ -1375,7 +1401,7 @@ static void flush_dev(Scsi_Device *dev, unsigned long cursec, unsigned int j,
for
(
n
=
0
;
n
<
n_ready
;
n
++
)
{
for
(
n
=
0
;
n
<
n_ready
;
n
++
)
{
k
=
il
[
n
];
cpp
=
&
HD
(
j
)
->
cp
[
k
];
SCpnt
=
cpp
->
SCpnt
;
k
=
il
[
n
];
cpp
=
&
HD
(
j
)
->
cp
[
k
];
SCpnt
=
cpp
->
SCpnt
;
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
))
{
if
(
wait_on_busy
(
sh
[
j
]
->
io_port
,
MAXLOOP
))
{
printk
(
"%s: %s, target %d.%d:%d, pid %ld, Mbox %d, adapter"
\
printk
(
"%s: %s, target %d.%d:%d, pid %ld, Mbox %d, adapter"
\
" busy, will abort.
\n
"
,
BN
(
j
),
(
ihdlr
?
"ihdlr"
:
"qcomm"
),
" busy, will abort.
\n
"
,
BN
(
j
),
(
ihdlr
?
"ihdlr"
:
"qcomm"
),
SCpnt
->
channel
,
SCpnt
->
target
,
SCpnt
->
lun
,
SCpnt
->
pid
,
k
);
SCpnt
->
channel
,
SCpnt
->
target
,
SCpnt
->
lun
,
SCpnt
->
pid
,
k
);
...
...
drivers/scsi/u14-34f.h
View file @
5e88de04
...
@@ -11,7 +11,7 @@ int u14_34f_abort(Scsi_Cmnd *);
...
@@ -11,7 +11,7 @@ int u14_34f_abort(Scsi_Cmnd *);
int
u14_34f_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
int
u14_34f_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
int
u14_34f_biosparam
(
Disk
*
,
kdev_t
,
int
*
);
int
u14_34f_biosparam
(
Disk
*
,
kdev_t
,
int
*
);
#define U14_34F_VERSION "3.
00.09
"
#define U14_34F_VERSION "3.
10.00
"
#define ULTRASTOR_14_34F { \
#define ULTRASTOR_14_34F { \
NULL,
/* Ptr for modules */
\
NULL,
/* Ptr for modules */
\
...
...
fs/binfmt_elf.c
View file @
5e88de04
...
@@ -280,7 +280,6 @@ static unsigned long load_elf_interp(struct elfhdr * interp_elf_ex,
...
@@ -280,7 +280,6 @@ static unsigned long load_elf_interp(struct elfhdr * interp_elf_ex,
/* Real error */
/* Real error */
sys_close
(
elf_exec_fileno
);
sys_close
(
elf_exec_fileno
);
kfree
(
elf_phdata
);
kfree
(
elf_phdata
);
printk
(
"%d"
,
error
);
return
~
0UL
;
return
~
0UL
;
}
}
...
...
fs/buffer.c
View file @
5e88de04
...
@@ -591,8 +591,9 @@ void set_blocksize(kdev_t dev, int size)
...
@@ -591,8 +591,9 @@ void set_blocksize(kdev_t dev, int size)
continue
;
continue
;
if
(
bh
->
b_size
==
size
)
if
(
bh
->
b_size
==
size
)
continue
;
continue
;
bhnext
->
b_count
++
;
wait_on_buffer
(
bh
);
wait_on_buffer
(
bh
);
bhnext
->
b_count
--
;
if
(
bh
->
b_dev
==
dev
&&
bh
->
b_size
!=
size
)
{
if
(
bh
->
b_dev
==
dev
&&
bh
->
b_size
!=
size
)
{
clear_bit
(
BH_Dirty
,
&
bh
->
b_state
);
clear_bit
(
BH_Dirty
,
&
bh
->
b_state
);
clear_bit
(
BH_Uptodate
,
&
bh
->
b_state
);
clear_bit
(
BH_Uptodate
,
&
bh
->
b_state
);
...
@@ -1606,6 +1607,7 @@ asmlinkage int sync_old_buffers(void)
...
@@ -1606,6 +1607,7 @@ asmlinkage int sync_old_buffers(void)
ndirty
++
;
ndirty
++
;
if
(
bh
->
b_flushtime
>
jiffies
)
continue
;
if
(
bh
->
b_flushtime
>
jiffies
)
continue
;
nwritten
++
;
nwritten
++
;
next
->
b_count
++
;
bh
->
b_count
++
;
bh
->
b_count
++
;
bh
->
b_flushtime
=
0
;
bh
->
b_flushtime
=
0
;
#ifdef DEBUG
#ifdef DEBUG
...
@@ -1613,6 +1615,7 @@ asmlinkage int sync_old_buffers(void)
...
@@ -1613,6 +1615,7 @@ asmlinkage int sync_old_buffers(void)
#endif
#endif
ll_rw_block
(
WRITE
,
1
,
&
bh
);
ll_rw_block
(
WRITE
,
1
,
&
bh
);
bh
->
b_count
--
;
bh
->
b_count
--
;
next
->
b_count
--
;
}
}
}
}
#ifdef DEBUG
#ifdef DEBUG
...
@@ -1751,6 +1754,7 @@ int bdflush(void * unused)
...
@@ -1751,6 +1754,7 @@ int bdflush(void * unused)
currently dirty buffers are not shared, so it does not matter */
currently dirty buffers are not shared, so it does not matter */
if
(
refilled
&&
major
==
LOOP_MAJOR
)
if
(
refilled
&&
major
==
LOOP_MAJOR
)
continue
;
continue
;
next
->
b_count
++
;
bh
->
b_count
++
;
bh
->
b_count
++
;
ndirty
++
;
ndirty
++
;
bh
->
b_flushtime
=
0
;
bh
->
b_flushtime
=
0
;
...
@@ -1766,6 +1770,7 @@ int bdflush(void * unused)
...
@@ -1766,6 +1770,7 @@ int bdflush(void * unused)
if
(
nlist
!=
BUF_DIRTY
)
ncount
++
;
if
(
nlist
!=
BUF_DIRTY
)
ncount
++
;
#endif
#endif
bh
->
b_count
--
;
bh
->
b_count
--
;
next
->
b_count
--
;
}
}
}
}
#ifdef DEBUG
#ifdef DEBUG
...
...
fs/isofs/dir.c
View file @
5e88de04
...
@@ -121,6 +121,11 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
...
@@ -121,6 +121,11 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
char
*
name
;
char
*
name
;
struct
iso_directory_record
*
de
;
struct
iso_directory_record
*
de
;
if
(
filp
->
f_pos
>=
inode
->
i_size
)
{
return
0
;
}
offset
=
filp
->
f_pos
&
(
bufsize
-
1
);
offset
=
filp
->
f_pos
&
(
bufsize
-
1
);
block
=
isofs_bmap
(
inode
,
filp
->
f_pos
>>
bufbits
);
block
=
isofs_bmap
(
inode
,
filp
->
f_pos
>>
bufbits
);
...
...
fs/isofs/namei.c
View file @
5e88de04
...
@@ -65,7 +65,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
...
@@ -65,7 +65,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
unsigned
char
bufbits
=
ISOFS_BUFFER_BITS
(
dir
);
unsigned
char
bufbits
=
ISOFS_BUFFER_BITS
(
dir
);
unsigned
int
block
,
i
,
f_pos
,
offset
,
inode_number
;
unsigned
int
block
,
i
,
f_pos
,
offset
,
inode_number
;
struct
buffer_head
*
bh
;
struct
buffer_head
*
bh
;
void
*
cpnt
=
NULL
;
unsigned
int
old_offset
;
unsigned
int
old_offset
;
unsigned
int
backlink
;
unsigned
int
backlink
;
int
dlen
,
rrflag
,
match
;
int
dlen
,
rrflag
,
match
;
...
@@ -117,21 +116,8 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
...
@@ -117,21 +116,8 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
/* Handle case where the directory entry spans two blocks.
/* Handle case where the directory entry spans two blocks.
Usually 1024 byte boundaries */
Usually 1024 byte boundaries */
if
(
offset
>=
bufsize
)
{
if
(
offset
>=
bufsize
)
{
unsigned
int
frag1
;
printk
(
"Directory entry extends past end of iso9660 block
\n
"
);
frag1
=
bufsize
-
old_offset
;
cpnt
=
kmalloc
(
*
((
unsigned
char
*
)
de
),
GFP_KERNEL
);
if
(
!
cpnt
)
return
0
;
memcpy
(
cpnt
,
bh
->
b_data
+
old_offset
,
frag1
);
de
=
(
struct
iso_directory_record
*
)
cpnt
;
brelse
(
bh
);
offset
=
f_pos
&
(
bufsize
-
1
);
block
=
isofs_bmap
(
dir
,
f_pos
>>
bufbits
);
if
(
!
block
||
!
(
bh
=
bread
(
dir
->
i_dev
,
block
,
bufsize
)))
{
kfree
(
cpnt
);
return
0
;
return
0
;
};
memcpy
((
char
*
)
cpnt
+
frag1
,
bh
->
b_data
,
offset
);
}
}
/* Handle the '.' case */
/* Handle the '.' case */
...
@@ -190,12 +176,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
...
@@ -190,12 +176,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
match
=
isofs_match
(
namelen
,
name
,
dpnt
,
dlen
);
match
=
isofs_match
(
namelen
,
name
,
dpnt
,
dlen
);
}
}
if
(
cpnt
)
{
kfree
(
cpnt
);
cpnt
=
NULL
;
}
if
(
rrflag
)
kfree
(
dpnt
);
if
(
rrflag
)
kfree
(
dpnt
);
if
(
match
)
{
if
(
match
)
{
if
(
inode_number
==
-
1
)
{
if
(
inode_number
==
-
1
)
{
...
@@ -217,8 +197,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
...
@@ -217,8 +197,6 @@ static struct buffer_head * isofs_find_entry(struct inode * dir,
}
}
}
}
out:
out:
if
(
cpnt
)
kfree
(
cpnt
);
brelse
(
bh
);
brelse
(
bh
);
return
NULL
;
return
NULL
;
}
}
...
...
fs/isofs/rock.c
View file @
5e88de04
...
@@ -60,21 +60,6 @@
...
@@ -60,21 +60,6 @@
block = cont_extent; \
block = cont_extent; \
offset = cont_offset; \
offset = cont_offset; \
offset1 = 0; \
offset1 = 0; \
if(ISOFS_BUFFER_SIZE(DEV) == 1024) { \
block <<= 1; \
if (offset >= 1024) block++; \
offset &= 1023; \
if(offset + cont_size >= 1024) { \
bh = bread(DEV->i_dev, block++, ISOFS_BUFFER_SIZE(DEV)); \
if(!bh) {printk("Unable to read continuation Rock Ridge record\n"); \
kfree(buffer); \
buffer = NULL; } else { \
memcpy(buffer, bh->b_data + offset, 1024 - offset); \
brelse(bh); \
offset1 = 1024 - offset; \
offset = 0;} \
} \
}; \
if(buffer) { \
if(buffer) { \
bh = bread(DEV->i_dev, block, ISOFS_BUFFER_SIZE(DEV)); \
bh = bread(DEV->i_dev, block, ISOFS_BUFFER_SIZE(DEV)); \
if(bh){ \
if(bh){ \
...
@@ -429,7 +414,6 @@ char * get_rock_ridge_symlink(struct inode * inode)
...
@@ -429,7 +414,6 @@ char * get_rock_ridge_symlink(struct inode * inode)
unsigned
char
bufbits
=
ISOFS_BUFFER_BITS
(
inode
);
unsigned
char
bufbits
=
ISOFS_BUFFER_BITS
(
inode
);
struct
buffer_head
*
bh
;
struct
buffer_head
*
bh
;
unsigned
char
*
pnt
;
unsigned
char
*
pnt
;
void
*
cpnt
=
NULL
;
char
*
rpnt
;
char
*
rpnt
;
struct
iso_directory_record
*
raw_inode
;
struct
iso_directory_record
*
raw_inode
;
CONTINUE_DECLS
;
CONTINUE_DECLS
;
...
@@ -455,25 +439,13 @@ char * get_rock_ridge_symlink(struct inode * inode)
...
@@ -455,25 +439,13 @@ char * get_rock_ridge_symlink(struct inode * inode)
raw_inode
=
((
struct
iso_directory_record
*
)
pnt
);
raw_inode
=
((
struct
iso_directory_record
*
)
pnt
);
/*
* If we go past the end of the buffer, there is some sort of error.
*/
if
((
inode
->
i_ino
&
(
bufsize
-
1
))
+
*
pnt
>
bufsize
){
if
((
inode
->
i_ino
&
(
bufsize
-
1
))
+
*
pnt
>
bufsize
){
int
frag1
,
offset
;
printk
(
"symlink spans iso9660 blocks
\n
"
);
offset
=
(
inode
->
i_ino
&
(
bufsize
-
1
));
frag1
=
bufsize
-
offset
;
cpnt
=
kmalloc
(
*
pnt
,
GFP_KERNEL
);
if
(
!
cpnt
)
return
NULL
;
memcpy
(
cpnt
,
bh
->
b_data
+
offset
,
frag1
);
brelse
(
bh
);
if
(
!
(
bh
=
bread
(
inode
->
i_dev
,
++
block
,
bufsize
)))
{
kfree
(
cpnt
);
printk
(
"unable to read i-node block"
);
return
NULL
;
return
NULL
;
};
};
offset
+=
*
pnt
-
bufsize
;
memcpy
((
char
*
)
cpnt
+
frag1
,
bh
->
b_data
,
offset
);
pnt
=
((
unsigned
char
*
)
cpnt
);
raw_inode
=
((
struct
iso_directory_record
*
)
pnt
);
};
/* Now test for possible Rock Ridge extensions which will override some of
/* Now test for possible Rock Ridge extensions which will override some of
these numbers in the inode structure. */
these numbers in the inode structure. */
...
@@ -558,11 +530,6 @@ char * get_rock_ridge_symlink(struct inode * inode)
...
@@ -558,11 +530,6 @@ char * get_rock_ridge_symlink(struct inode * inode)
MAYBE_CONTINUE
(
repeat
,
inode
);
MAYBE_CONTINUE
(
repeat
,
inode
);
brelse
(
bh
);
brelse
(
bh
);
if
(
cpnt
)
{
kfree
(
cpnt
);
cpnt
=
NULL
;
};
return
rpnt
;
return
rpnt
;
out:
out:
if
(
buffer
)
kfree
(
buffer
);
if
(
buffer
)
kfree
(
buffer
);
...
...
include/linux/sched.h
View file @
5e88de04
...
@@ -58,9 +58,6 @@ extern unsigned long avenrun[]; /* Load averages */
...
@@ -58,9 +58,6 @@ extern unsigned long avenrun[]; /* Load averages */
extern
int
nr_running
,
nr_tasks
;
extern
int
nr_running
,
nr_tasks
;
extern
int
last_pid
;
extern
int
last_pid
;
#define FIRST_TASK task[0]
#define LAST_TASK task[NR_TASKS-1]
#include <linux/head.h>
#include <linux/head.h>
#include <linux/fs.h>
#include <linux/fs.h>
#include <linux/signal.h>
#include <linux/signal.h>
...
...
include/linux/sunrpc/clnt.h
View file @
5e88de04
...
@@ -23,7 +23,7 @@ struct rpc_portmap {
...
@@ -23,7 +23,7 @@ struct rpc_portmap {
__u32
pm_prog
;
__u32
pm_prog
;
__u32
pm_vers
;
__u32
pm_vers
;
__u32
pm_prot
;
__u32
pm_prot
;
__u
32
pm_port
;
__u
16
pm_port
;
};
};
/*
/*
...
...
mm/memory.c
View file @
5e88de04
...
@@ -725,7 +725,7 @@ void vmtruncate(struct inode * inode, unsigned long offset)
...
@@ -725,7 +725,7 @@ void vmtruncate(struct inode * inode, unsigned long offset)
flush_cache_range
(
mm
,
start
,
end
);
flush_cache_range
(
mm
,
start
,
end
);
zap_page_range
(
mm
,
start
,
len
);
zap_page_range
(
mm
,
start
,
len
);
flush_tlb_range
(
mm
,
start
,
end
);
flush_tlb_range
(
mm
,
start
,
end
);
}
while
((
mpnt
=
mpnt
->
vm_next_share
)
!=
inode
->
i_mmap
);
}
while
((
mpnt
=
mpnt
->
vm_next_share
)
!=
NULL
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment