Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
d5bee775
Commit
d5bee775
authored
Jan 31, 2006
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-linus' of
git://brick.kernel.dk/data/git/linux-2.6-block
parents
0827f2b6
fddfdeaf
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
50 additions
and
37 deletions
+50
-37
block/elevator.c
block/elevator.c
+15
-30
block/ll_rw_blk.c
block/ll_rw_blk.c
+5
-2
drivers/scsi/libata-scsi.c
drivers/scsi/libata-scsi.c
+26
-1
fs/bio.c
fs/bio.c
+1
-0
include/linux/blkdev.h
include/linux/blkdev.h
+3
-3
include/scsi/scsi_host.h
include/scsi/scsi_host.h
+0
-1
No files found.
block/elevator.c
View file @
d5bee775
...
...
@@ -139,35 +139,16 @@ static int elevator_attach(request_queue_t *q, struct elevator_type *e,
static
char
chosen_elevator
[
16
];
static
void
elevator_setup_default
(
void
)
static
int
__init
elevator_setup
(
char
*
str
)
{
struct
elevator_type
*
e
;
/*
* If default has not been set, use the compiled-in selection.
*/
if
(
!
chosen_elevator
[
0
])
strcpy
(
chosen_elevator
,
CONFIG_DEFAULT_IOSCHED
);
/*
* Be backwards-compatible with previous kernels, so users
* won't get the wrong elevator.
*/
if
(
!
strcmp
(
chosen_elevato
r
,
"as"
))
if
(
!
strcmp
(
st
r
,
"as"
))
strcpy
(
chosen_elevator
,
"anticipatory"
);
/*
* If the given scheduler is not available, fall back to the default
*/
if
((
e
=
elevator_find
(
chosen_elevator
)))
elevator_put
(
e
);
else
strcpy
(
chosen_elevator
,
CONFIG_DEFAULT_IOSCHED
);
}
static
int
__init
elevator_setup
(
char
*
str
)
{
strncpy
(
chosen_elevator
,
str
,
sizeof
(
chosen_elevator
)
-
1
);
strncpy
(
chosen_elevator
,
str
,
sizeof
(
chosen_elevator
)
-
1
);
return
0
;
}
...
...
@@ -184,14 +165,16 @@ int elevator_init(request_queue_t *q, char *name)
q
->
end_sector
=
0
;
q
->
boundary_rq
=
NULL
;
elevator_setup_default
();
if
(
name
&&
!
(
e
=
elevator_get
(
name
)))
return
-
EINVAL
;
if
(
!
name
)
name
=
chosen_elevator
;
if
(
!
e
&&
*
chosen_elevator
&&
!
(
e
=
elevator_get
(
chosen_elevator
))
)
printk
(
"I/O scheduler %s not found
\n
"
,
chosen_elevator
)
;
e
=
elevator_get
(
name
);
if
(
!
e
)
return
-
EINVAL
;
if
(
!
e
&&
!
(
e
=
elevator_get
(
CONFIG_DEFAULT_IOSCHED
)))
{
printk
(
"Default I/O scheduler not found, using no-op
\n
"
);
e
=
elevator_get
(
"noop"
);
}
eq
=
kmalloc
(
sizeof
(
struct
elevator_queue
),
GFP_KERNEL
);
if
(
!
eq
)
{
...
...
@@ -669,8 +652,10 @@ int elv_register(struct elevator_type *e)
spin_unlock_irq
(
&
elv_list_lock
);
printk
(
KERN_INFO
"io scheduler %s registered"
,
e
->
elevator_name
);
if
(
!
strcmp
(
e
->
elevator_name
,
chosen_elevator
))
printk
(
" (default)"
);
if
(
!
strcmp
(
e
->
elevator_name
,
chosen_elevator
)
||
(
!*
chosen_elevator
&&
!
strcmp
(
e
->
elevator_name
,
CONFIG_DEFAULT_IOSCHED
)))
printk
(
" (default)"
);
printk
(
"
\n
"
);
return
0
;
}
...
...
block/ll_rw_blk.c
View file @
d5bee775
...
...
@@ -304,6 +304,7 @@ static inline void rq_init(request_queue_t *q, struct request *rq)
* blk_queue_ordered - does this queue support ordered writes
* @q: the request queue
* @ordered: one of QUEUE_ORDERED_*
* @prepare_flush_fn: rq setup helper for cache flush ordered writes
*
* Description:
* For journalled file systems, doing ordered writes on a commit
...
...
@@ -332,6 +333,7 @@ int blk_queue_ordered(request_queue_t *q, unsigned ordered,
return
-
EINVAL
;
}
q
->
ordered
=
ordered
;
q
->
next_ordered
=
ordered
;
q
->
prepare_flush_fn
=
prepare_flush_fn
;
...
...
@@ -662,7 +664,7 @@ EXPORT_SYMBOL(blk_queue_bounce_limit);
* Enables a low level driver to set an upper limit on the size of
* received requests.
**/
void
blk_queue_max_sectors
(
request_queue_t
*
q
,
unsigned
shor
t
max_sectors
)
void
blk_queue_max_sectors
(
request_queue_t
*
q
,
unsigned
in
t
max_sectors
)
{
if
((
max_sectors
<<
9
)
<
PAGE_CACHE_SIZE
)
{
max_sectors
=
1
<<
(
PAGE_CACHE_SHIFT
-
9
);
...
...
@@ -2632,6 +2634,7 @@ EXPORT_SYMBOL(blk_put_request);
/**
* blk_end_sync_rq - executes a completion event on a request
* @rq: request to complete
* @error: end io status of the request
*/
void
blk_end_sync_rq
(
struct
request
*
rq
,
int
error
)
{
...
...
@@ -3153,7 +3156,7 @@ static int __end_that_request_first(struct request *req, int uptodate,
if
(
blk_fs_request
(
req
)
&&
req
->
rq_disk
)
{
const
int
rw
=
rq_data_dir
(
req
);
__
disk_stat_add
(
req
->
rq_disk
,
sectors
[
rw
],
nr_bytes
>>
9
);
disk_stat_add
(
req
->
rq_disk
,
sectors
[
rw
],
nr_bytes
>>
9
);
}
total_bytes
=
bio_nbytes
=
0
;
...
...
drivers/scsi/libata-scsi.c
View file @
d5bee775
...
...
@@ -1700,6 +1700,31 @@ static unsigned int ata_msense_rw_recovery(u8 **ptr_io, const u8 *last)
return
sizeof
(
def_rw_recovery_mpage
);
}
/*
* We can turn this into a real blacklist if it's needed, for now just
* blacklist any Maxtor BANC1G10 revision firmware
*/
static
int
ata_dev_supports_fua
(
u16
*
id
)
{
unsigned
char
model
[
41
],
fw
[
9
];
if
(
!
ata_id_has_fua
(
id
))
return
0
;
model
[
40
]
=
'\0'
;
fw
[
8
]
=
'\0'
;
ata_dev_id_string
(
id
,
model
,
ATA_ID_PROD_OFS
,
sizeof
(
model
)
-
1
);
ata_dev_id_string
(
id
,
fw
,
ATA_ID_FW_REV_OFS
,
sizeof
(
fw
)
-
1
);
if
(
strncmp
(
model
,
"Maxtor"
,
6
))
return
1
;
if
(
strncmp
(
fw
,
"BANC1G10"
,
8
))
return
1
;
return
0
;
/* blacklisted */
}
/**
* ata_scsiop_mode_sense - Simulate MODE SENSE 6, 10 commands
* @args: device IDENTIFY data / SCSI command of interest.
...
...
@@ -1797,7 +1822,7 @@ unsigned int ata_scsiop_mode_sense(struct ata_scsi_args *args, u8 *rbuf,
return
0
;
dpofua
=
0
;
if
(
ata_
id_ha
s_fua
(
args
->
id
)
&&
dev
->
flags
&
ATA_DFLAG_LBA48
&&
if
(
ata_
dev_support
s_fua
(
args
->
id
)
&&
dev
->
flags
&
ATA_DFLAG_LBA48
&&
(
!
(
dev
->
flags
&
ATA_DFLAG_PIO
)
||
dev
->
multi_count
))
dpofua
=
1
<<
4
;
...
...
fs/bio.c
View file @
d5bee775
...
...
@@ -411,6 +411,7 @@ static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page
/**
* bio_add_pc_page - attempt to add page to bio
* @q: the target queue
* @bio: destination bio
* @page: page to add
* @len: vec entry length
...
...
include/linux/blkdev.h
View file @
d5bee775
...
...
@@ -392,8 +392,8 @@ struct request_queue
unsigned
int
nr_congestion_off
;
unsigned
int
nr_batching
;
unsigned
shor
t
max_sectors
;
unsigned
shor
t
max_hw_sectors
;
unsigned
in
t
max_sectors
;
unsigned
in
t
max_hw_sectors
;
unsigned
short
max_phys_segments
;
unsigned
short
max_hw_segments
;
unsigned
short
hardsect_size
;
...
...
@@ -697,7 +697,7 @@ extern request_queue_t *blk_init_queue(request_fn_proc *, spinlock_t *);
extern
void
blk_cleanup_queue
(
request_queue_t
*
);
extern
void
blk_queue_make_request
(
request_queue_t
*
,
make_request_fn
*
);
extern
void
blk_queue_bounce_limit
(
request_queue_t
*
,
u64
);
extern
void
blk_queue_max_sectors
(
request_queue_t
*
,
unsigned
shor
t
);
extern
void
blk_queue_max_sectors
(
request_queue_t
*
,
unsigned
in
t
);
extern
void
blk_queue_max_phys_segments
(
request_queue_t
*
,
unsigned
short
);
extern
void
blk_queue_max_hw_segments
(
request_queue_t
*
,
unsigned
short
);
extern
void
blk_queue_max_segment_size
(
request_queue_t
*
,
unsigned
int
);
...
...
include/scsi/scsi_host.h
View file @
d5bee775
...
...
@@ -554,7 +554,6 @@ struct Scsi_Host {
/*
* ordered write support
*/
unsigned
ordered_flush
:
1
;
unsigned
ordered_tag
:
1
;
/*
...
...
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